春风项目四线(合箱线、总装线)
yyt
2024-05-20 d4f4376ab5aef071cb841de0f9a9b7f6cb16c651
提交 | 用户 | 时间
fd2207 1 package com.jcdm.main.om.productionOrde.controller;
2
64e175 3 import java.text.SimpleDateFormat;
4 import java.time.LocalDateTime;
5 import java.time.format.DateTimeFormatter;
f11989 6 import java.util.Date;
fd2207 7 import java.util.List;
8 import javax.servlet.http.HttpServletResponse;
05d425 9
749044 10 import com.jcdm.main.bs.modelNumber.domain.BsModelNumber;
C 11 import com.jcdm.main.bs.modelNumber.service.IBsModelNumberService;
05d425 12 import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling;
C 13 import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService;
fd2207 14 import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo;
15 import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService;
df1f2b 16 import com.jcdm.main.webservice.service.ReceivingServices;
05d425 17 import org.apache.commons.lang3.StringUtils;
fd2207 18 import org.springframework.security.access.prepost.PreAuthorize;
19 import org.springframework.beans.factory.annotation.Autowired;
20 import org.springframework.web.bind.annotation.GetMapping;
21 import org.springframework.web.bind.annotation.PostMapping;
22 import org.springframework.web.bind.annotation.PutMapping;
23 import org.springframework.web.bind.annotation.DeleteMapping;
24 import org.springframework.web.bind.annotation.PathVariable;
25 import org.springframework.web.bind.annotation.RequestBody;
26 import org.springframework.web.bind.annotation.RequestMapping;
27 import org.springframework.web.bind.annotation.RestController;
28 import com.jcdm.common.annotation.Log;
29 import com.jcdm.common.core.controller.BaseController;
30 import com.jcdm.common.core.domain.AjaxResult;
31 import com.jcdm.common.enums.BusinessType;
32 import com.jcdm.common.utils.poi.ExcelUtil;
33 import com.jcdm.common.core.page.TableDataInfo;
f11989 34
35 import static org.apache.commons.lang3.SystemUtils.getUserName;
fd2207 36
37 /**
38  * 生产工单Controller
39  * 
40  * @author ruimin
41  * @date 2023-12-11
42  */
43 @RestController
44 @RequestMapping("/om/productionOrde")
45 public class OmProductionOrdeInfoController extends BaseController
46 {
47     @Autowired
48     private IOmProductionOrdeInfoService omProductionOrdeInfoService;
05d425 49
C 50     @Autowired
51     private IBsOrderSchedulingService bsOrderSchedulingService;
749044 52
C 53     @Autowired
54     private IBsModelNumberService bsModelNumberService;
fd2207 55
56     /**
57      * 查询生产工单列表
58      */
59     @PreAuthorize("@ss.hasPermi('om:productionOrde:list')")
60     @GetMapping("/list")
61     public TableDataInfo list(OmProductionOrdeInfo omProductionOrdeInfo)
62     {
63         startPage();
64         List<OmProductionOrdeInfo> list = omProductionOrdeInfoService.selectOmProductionOrdeInfoList(omProductionOrdeInfo);
65         return getDataTable(list);
66     }
67
68     /**
69      * 导出生产工单列表
70      */
71     @PreAuthorize("@ss.hasPermi('om:productionOrde:export')")
72     @Log(title = "生产工单", businessType = BusinessType.EXPORT)
73     @PostMapping("/export")
74     public void export(HttpServletResponse response, OmProductionOrdeInfo omProductionOrdeInfo)
75     {
76         List<OmProductionOrdeInfo> list = omProductionOrdeInfoService.selectOmProductionOrdeInfoList(omProductionOrdeInfo);
77         ExcelUtil<OmProductionOrdeInfo> util = new ExcelUtil<OmProductionOrdeInfo>(OmProductionOrdeInfo.class);
78         util.exportExcel(response, list, "生产工单数据");
79     }
80
81     /**
82      * 获取生产工单详细信息
83      */
d4f437 84 //    @PreAuthorize("@ss.hasPermi('om:productionOrde:query')")
Y 85 //    @GetMapping(value = "/{id}")
86 //    public AjaxResult getInfo(@PathVariable("id") Long id)
87 //    {
88 //        return success(omProductionOrdeInfoService.selectOmProductionOrdeInfoById(id));
89 //    }
90
91     /**
92      * 获取生产工单详细信息
93      */
fd2207 94     @PreAuthorize("@ss.hasPermi('om:productionOrde:query')")
d4f437 95     @GetMapping("/{ids}")
Y 96     public AjaxResult getInfo(@PathVariable Long[] ids)
fd2207 97     {
d4f437 98         return success(omProductionOrdeInfoService.selectOmProductionOrdeInfoByIds(ids));
fd2207 99     }
100
101     /**
102      * 新增生产工单
103      */
104     @PreAuthorize("@ss.hasPermi('om:productionOrde:add')")
105     @Log(title = "生产工单", businessType = BusinessType.INSERT)
106     @PostMapping
107     public AjaxResult add(@RequestBody OmProductionOrdeInfo omProductionOrdeInfo)
108     {
109         return toAjax(omProductionOrdeInfoService.insertOmProductionOrdeInfo(omProductionOrdeInfo));
110     }
111
112     /**
e0a2b8 113      * 生成按钮
05d425 114      */
C 115     @PostMapping("/orderSchedulingForBoxCode")
116     public AjaxResult addOrderSchedulingForBoxCode(@RequestBody OmProductionOrdeInfo omProductionOrdeInfo)
117     {
64e175 118         //获取当前时间
119         LocalDateTime date= LocalDateTime.now();
120         //创建日期时间对象格式化器,日期格式类似: 2023-05-23 22:18:38
121         DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
122         //将时间转化为对应格式的字符串
123         String fomateDate=date.format(formatter).toString();
749044 124
C 125
05d425 126         Integer startCode = Integer.parseInt(omProductionOrdeInfo.getStartCode());//开始编号
C 127         Integer planQty = Math.toIntExact(omProductionOrdeInfo.getPlanQty());//计划数量
128         String dateTimeRule = omProductionOrdeInfo.getDateTimeRule();
129
749044 130         String engineNo = "";
C 131         if(planQty>0) {
132             for (int i = 0; i < planQty; i++) {
133                 engineNo = omProductionOrdeInfo.getTypeZ() + " " + dateTimeRule + StringUtils.leftPad(String.valueOf(startCode), 3, "0");
134                 BsOrderScheduling bsOrderScheduling = new BsOrderScheduling();
135                 bsOrderScheduling.setOrderNo(omProductionOrdeInfo.getWorkOrderNo());
136                 bsOrderScheduling.setModel(omProductionOrdeInfo.getTypeZ());
137                 bsOrderScheduling.setEngineNo(engineNo);
138                 bsOrderScheduling.setProductionStatus("1");
139                 bsOrderScheduling.setOperator(getUserName());
140                 bsOrderScheduling.setOperateTime(fomateDate);
a5f938 141                 bsOrderScheduling.setProductType(omProductionOrdeInfo.getTypeL());//产品类型
40126d 142                 bsOrderScheduling.setWhetherOrPrint("0");
749044 143                 bsOrderSchedulingService.insertBsOrderScheduling(bsOrderScheduling);
C 144                 startCode++;
145             }
05d425 146
749044 147             //新增机型序号
C 148             BsModelNumber bsModelNumber = new BsModelNumber();
149             bsModelNumber.setModel(omProductionOrdeInfo.getTypeZ());
150             bsModelNumber.setModelDate(dateTimeRule);
151             bsModelNumber.setMaxnumValue((startCode - 1) + "");
152             bsModelNumber.setSaveTime(fomateDate);
a5f938 153             bsModelNumber.setLastNumber((startCode - 1) + "");
749044 154             bsModelNumberService.insertBsModelNumber(bsModelNumber);
C 155         }
156         //更新工单状态
157         omProductionOrdeInfo.setOrderStatus("2");
05d425 158         return toAjax(omProductionOrdeInfoService.updateOmProductionOrdeInfo(omProductionOrdeInfo));
749044 159
C 160
05d425 161     }
C 162
163     /**
fd2207 164      * 修改生产工单
165      */
166     @PreAuthorize("@ss.hasPermi('om:productionOrde:edit')")
167     @Log(title = "生产工单", businessType = BusinessType.UPDATE)
168     @PutMapping
169     public AjaxResult edit(@RequestBody OmProductionOrdeInfo omProductionOrdeInfo)
170     {
171         return toAjax(omProductionOrdeInfoService.updateOmProductionOrdeInfo(omProductionOrdeInfo));
172     }
173
174     /**
175      * 删除生产工单
176      */
177     @PreAuthorize("@ss.hasPermi('om:productionOrde:remove')")
178     @Log(title = "生产工单", businessType = BusinessType.DELETE)
179     @DeleteMapping("/{ids}")
180     public AjaxResult remove(@PathVariable Long[] ids)
181     {
182         return toAjax(omProductionOrdeInfoService.deleteOmProductionOrdeInfoByIds(ids));
183     }
184
185     /**
186      * table列上移下移
187      */
188     @Log(title = "生产工单", businessType = BusinessType.DELETE)
189     @GetMapping("/upDownMove")
190     public AjaxResult upDownMove(OmProductionOrdeInfo omProductionOrdeInfo)
191     {
192         return omProductionOrdeInfoService.upDownMove(omProductionOrdeInfo);
193     }
df1f2b 194
195     /**
1391b3 196      * 接收工单
df1f2b 197      */
1391b3 198     @PreAuthorize("@ss.hasPermi('om:productionOrde:receive')")
df1f2b 199     @GetMapping("/getProductionNotice")
200     public AjaxResult getProductionNotice(OmProductionOrdeInfo omProductionOrdeInfo)
201     {
5f7e70 202         String productionNotice = omProductionOrdeInfo.getProductionNotice();
203         List<OmProductionOrdeInfo> omProductionOrdeInfos = omProductionOrdeInfoService.selectOmProductionOrdeInfoList(omProductionOrdeInfo);
204         if(omProductionOrdeInfos.size() == 0){
205             try {
206                 ReceivingServices.insertWebserviceData(productionNotice);
207             } catch (Exception e) {
208                 return error("接收失败!请检查通知单号");
209             }
1de44b 210         }else {
e4f64a 211             return warn("该通知单已经接收完毕,不能重复接收!");
5f7e70 212         }
1de44b 213         return AjaxResult.success("接收成功!");
df1f2b 214     }
fd2207 215 }