懒羊羊
2023-11-14 036dcdcec6235d82b008f5c736d27a0d1f90d4a2
提交 | 用户 | 时间
1ac2bc 1 package cn.stylefeng.guns.modular.zsx.pm.salesOrder.controller;
2
3 import cn.afterturn.easypoi.entity.vo.MapExcelConstants;
4 import cn.afterturn.easypoi.excel.entity.ExportParams;
5 import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
6 import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
7 import cn.afterturn.easypoi.view.PoiBaseView;
8 import cn.stylefeng.guns.base.pojo.page.LayuiPageInfo;
9 import cn.stylefeng.guns.modular.zsx.pm.salesOrder.entity.SalesOrder;
10 import cn.stylefeng.guns.modular.zsx.pm.salesOrder.model.params.SalesOrderParam;
11 import cn.stylefeng.guns.modular.zsx.pm.salesOrder.service.SalesOrderService;
12 import cn.stylefeng.roses.core.base.controller.BaseController;
13 import cn.stylefeng.roses.kernel.model.response.ResponseData;
14 import cn.stylefeng.roses.core.mutidatasource.annotion.DataSource;
15 import com.baomidou.mybatisplus.extension.api.R;
16 import lombok.SneakyThrows;
17 import org.apache.poi.hssf.usermodel.HSSFDateUtil;
18 import org.apache.poi.ss.usermodel.Cell;
19 import org.apache.poi.xssf.usermodel.XSSFRow;
20 import org.apache.poi.xssf.usermodel.XSSFSheet;
21 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
22 import org.springframework.beans.factory.annotation.Autowired;
23 import org.springframework.stereotype.Controller;
24 import org.springframework.ui.ModelMap;
25 import org.springframework.web.bind.annotation.RequestMapping;
26 import org.springframework.web.bind.annotation.RequestPart;
27 import org.springframework.web.bind.annotation.ResponseBody;
28 import org.springframework.web.multipart.MultipartFile;
29
30 import javax.servlet.http.HttpServletRequest;
31 import javax.servlet.http.HttpServletResponse;
32 import java.io.IOException;
33 import java.util.ArrayList;
34 import java.util.Date;
35 import java.util.List;
36 import java.util.Objects;
37
38
39 /**
40  * 生产订单控制器
41  *
42  * @author ruimin
43  * @Date 2023-08-26 15:55:23
44  */
45 @Controller
46 @RequestMapping("/salesOrder")
47 public class SalesOrderController extends BaseController {
48
49     private String PREFIX = "/modular/pm/salesOrder";
50
51     @Autowired
52     private SalesOrderService salesOrderService;
53
54     /**
55      * 跳转到主页面
56      *
57      * @author ruimin
58      * @Date 2023-08-26
59      */
60     @RequestMapping("")
61     public String index() {
62         return PREFIX + "/salesOrder.html";
63     }
64
65     /**
66      * 新增页面
67      *
68      * @author ruimin
69      * @Date 2023-08-26
70      */
71     @RequestMapping("/add")
72     public String add() {
73         return PREFIX + "/salesOrder_add.html";
74     }
75
76     /**
77      * 编辑页面
78      *
79      * @author ruimin
80      * @Date 2023-08-26
81      */
82     @RequestMapping("/edit")
83     public String edit() {
84         return PREFIX + "/salesOrder_edit.html";
85     }
86
87     /**
88      * 拆分页面
89      *
90      * @author ruimin
91      * @Date 2023-08-26
92      */
93     @RequestMapping("/split")
94     public String split() {
95         return PREFIX + "/split.html";
96     }
97
98     /**
99      * 下发页面
100      *
101      * @author ruimin
102      * @Date 2023-08-26
103      */
104     @RequestMapping("/bindParam")
105     public String bindParam() {
106         return PREFIX + "/bindParam.html";
107     }
108
109     /**
036dcd 110      * 下发详情页面
111      *
112      * @author ruimin
113      * @Date 2023-08-26
114      */
115     @RequestMapping("/distributeDetails")
116     public String distributeDetails() {
117         return PREFIX + "/bulletBox/distributeDetails.html";
118     }
119
120     /**
1ac2bc 121      * 新增接口
122      *
123      * @author ruimin
124      * @Date 2023-08-26
125      */
126     @RequestMapping("/addItem")
127     @ResponseBody
128     @DataSource(name = "self")
129     public ResponseData addItem(SalesOrderParam salesOrderParam) {
130         this.salesOrderService.add(salesOrderParam);
131         return ResponseData.success();
132     }
133
134     /**
135      * 编辑接口
136      *
137      * @author ruimin
138      * @Date 2023-08-26
139      */
140     @RequestMapping("/editItem")
141     @ResponseBody
142     @DataSource(name = "self")
143     public ResponseData editItem(SalesOrderParam salesOrderParam) {
144         this.salesOrderService.update(salesOrderParam);
145         return ResponseData.success();
146     }
147
148     /**
149      * 编辑接口
150      *
151      * @author ruimin
152      * @Date 2023-08-26
153      */
154     @RequestMapping("/updateBySalesOrderId")
155     @ResponseBody
156     @DataSource(name = "self")
157     public ResponseData updateBySalesOrderId(SalesOrderParam salesOrderParam) {
158         SalesOrder byId = this.salesOrderService.getById(salesOrderParam.getId());
159         byId.setState("2");
160         this.salesOrderService.saveOrUpdate(byId);
161         return ResponseData.success();
162     }
163
164
165     /**
166      * 删除接口
167      *
168      * @author ruimin
169      * @Date 2023-08-26
170      */
171     @RequestMapping("/delete")
172     @ResponseBody
173     @DataSource(name = "self")
174     public ResponseData delete(SalesOrderParam salesOrderParam) {
175         this.salesOrderService.delete(salesOrderParam);
176         return ResponseData.success();
177     }
178
179     /**
180      * 查看详情接口
181      *
182      * @author ruimin
183      * @Date 2023-08-26
184      */
185     @RequestMapping("/detail")
186     @ResponseBody
187     @DataSource(name = "self")
188     public ResponseData detail(SalesOrderParam salesOrderParam) {
189         SalesOrder detail = this.salesOrderService.getById(salesOrderParam.getId());
190         return ResponseData.success(detail);
191     }
192
193     /**
194      * 查询列表
195      *
196      * @author ruimin
197      * @Date 2023-08-26
198      */
199     @ResponseBody
200     @RequestMapping("/list")
201     @DataSource(name = "self")
202     public LayuiPageInfo list(SalesOrderParam salesOrderParam) {
203         return this.salesOrderService.findPageBySpec(salesOrderParam);
204     }
205
206     /**
207      * 拆分订单方法
208      *
209      * @author ruimin
210      * @Date 2023-08-26
211      */
212     @ResponseBody
213     @RequestMapping("/breakDownOrders")
214     @DataSource(name = "self")
215     public LayuiPageInfo breakDownOrders(SalesOrderParam salesOrderParam) {
216         return this.salesOrderService.breakDownOrders(salesOrderParam);
217     }
218
219     /**
220      * 拆分绑定下发方法
221      *
222      * @author ruimin
223      * @Date 2023-08-26
224      */
225     @ResponseBody
226     @RequestMapping("/DistributeSalesOrder")
227     @DataSource(name = "self")
228     public ResponseData DistributeSalesOrder(SalesOrderParam salesOrderParam) {
229         this.salesOrderService.DistributeSalesOrder(salesOrderParam);
230         return ResponseData.success();
231     }
232
233     /**
234      * 导入excel
235      *
236      * @author liwenya
237      * @Date 2021-07-09
238      */
239     @SneakyThrows
240     @RequestMapping(value = "/importIn")
241     @ResponseBody
242     @DataSource(name = "self")
243     public ResponseData importIn(@RequestPart("file") MultipartFile file, HttpServletRequest request) throws IOException {
244
245         List<SalesOrder> list = new ArrayList<>();
246         XSSFWorkbook sheets = new XSSFWorkbook(file.getInputStream());
247         //获取sheet
248         XSSFSheet sheet = sheets.getSheet(sheets.getSheetName(0));
249         int rows = sheet.getPhysicalNumberOfRows();
250         for(int i = 2; i < rows; i++){
251             //获取列数
252             XSSFRow row = sheet.getRow(i);
253             SalesOrder salesOrder = new SalesOrder();
254             salesOrder.setSalesOrderCode(String.valueOf(row.getCell(0)).replace(".0", ""));
255             salesOrder.setCustomerNo(String.valueOf(row.getCell(1)).replace(".0", ""));
256             salesOrder.setCargoNo(row.getCell(2).toString().replace(".0", ""));
257             salesOrder.setProductCode(row.getCell(3).toString().replace(".0", ""));
258             salesOrder.setProductName(row.getCell(4).toString().replace(".0", ""));
259             Cell planNumber = row.getCell(5);
260             if(!Objects.equals(planNumber, null) && !Objects.equals(planNumber.toString(),"")){
261                 double d = planNumber.getNumericCellValue();
262                 salesOrder.setPlanNumber((int) d);
263             }
264
265             Cell planStartTime = row.getCell(6);
266             if(HSSFDateUtil.isCellDateFormatted(planStartTime)){
267                 Date d = planStartTime.getDateCellValue();
268                 salesOrder.setPlanStartTime(d);
269             }
270
271             Cell planEndTime = row.getCell(7);
272             if(HSSFDateUtil.isCellDateFormatted(planEndTime)){
273                 Date d = planEndTime.getDateCellValue();
274                 salesOrder.setPlanEndTime(d);
275             }
276
277             salesOrder.setWorkshopCode(row.getCell(8).toString().replace(".0", ""));
278             salesOrder.setLineCode(row.getCell(9).toString().replace(".0", ""));
279
280             Cell deliveryTime = row.getCell(10);
281             if(HSSFDateUtil.isCellDateFormatted(deliveryTime)){
282                 Date d = deliveryTime.getDateCellValue();
283                 salesOrder.setDeliveryTime(d);
284             }
285
286             salesOrder.setOrderSource(row.getCell(11).toString().replace(".0", ""));
287             salesOrder.setRemark(row.getCell(12).toString().replace(".0", ""));
288             salesOrder.setState("1");
289             list.add(salesOrder);
290         }
291
292         for(SalesOrder salesOrder : list){
293             salesOrderService.save(salesOrder);
294         }
295         return ResponseData.success("上传成功");
296     }
297
298     /**
299      * excel导出模板
300      *
301      * @author liwenya
302      * @Date 2021年7月9日 17点01分
303      */
304     @RequestMapping("/exportOut")
305     public void exportOut(ModelMap modelMap, HttpServletRequest request,
306                           HttpServletResponse response) {
307         List<ExcelExportEntity> entity = new ArrayList<>();
308         entity.add(new ExcelExportEntity("订单编号", "salesOrderCode"));
309         entity.add(new ExcelExportEntity("客户编号", "customerNo"));
310         entity.add(new ExcelExportEntity("货号", "cargoNo"));
311         entity.add(new ExcelExportEntity("产品编号", "productCode"));
312         entity.add(new ExcelExportEntity("产品名称", "productName"));
313         entity.add(new ExcelExportEntity("计划数量", "planNumber"));
314         entity.add(new ExcelExportEntity("计划开始时间", "planStartTime"));
315         entity.add(new ExcelExportEntity("计划结束时间", "planEndTime"));
316         entity.add(new ExcelExportEntity("车间编码", "workshopCode"));
317         entity.add(new ExcelExportEntity("产线编码", "lineCode"));
318         entity.add(new ExcelExportEntity("交货时间", "deliveryTime"));
319         entity.add(new ExcelExportEntity("订单来源", "orderSource"));
320         entity.add(new ExcelExportEntity("备注", "remark"));
321
322         ExportParams params = new ExportParams("生产订单", "生产订单", ExcelType.XSSF);
323         modelMap.put(MapExcelConstants.MAP_LIST, new ArrayList<>());
324         modelMap.put(MapExcelConstants.ENTITY_LIST, entity);
325         modelMap.put(MapExcelConstants.PARAMS, params);
326         modelMap.put(MapExcelConstants.FILE_NAME, "生产订单");
327         PoiBaseView.render(modelMap, request, response, MapExcelConstants.EASYPOI_MAP_EXCEL_VIEW);
328     }
329
330
331 }
332
333