package cn.stylefeng.guns.modular.zsx.pm.salesOrder.controller;
|
|
import cn.afterturn.easypoi.entity.vo.MapExcelConstants;
|
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
import cn.afterturn.easypoi.view.PoiBaseView;
|
import cn.stylefeng.guns.base.pojo.page.LayuiPageInfo;
|
import cn.stylefeng.guns.modular.zsx.pm.salesOrder.entity.SalesOrder;
|
import cn.stylefeng.guns.modular.zsx.pm.salesOrder.model.params.SalesOrderParam;
|
import cn.stylefeng.guns.modular.zsx.pm.salesOrder.service.SalesOrderService;
|
import cn.stylefeng.roses.core.base.controller.BaseController;
|
import cn.stylefeng.roses.kernel.model.response.ResponseData;
|
import cn.stylefeng.roses.core.mutidatasource.annotion.DataSource;
|
import com.baomidou.mybatisplus.extension.api.R;
|
import lombok.SneakyThrows;
|
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
|
import org.apache.poi.ss.usermodel.Cell;
|
import org.apache.poi.xssf.usermodel.XSSFRow;
|
import org.apache.poi.xssf.usermodel.XSSFSheet;
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.ModelMap;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestPart;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.IOException;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Objects;
|
|
|
/**
|
* 生产订单控制器
|
*
|
* @author ruimin
|
* @Date 2023-08-26 15:55:23
|
*/
|
@Controller
|
@RequestMapping("/salesOrder")
|
public class SalesOrderController extends BaseController {
|
|
private String PREFIX = "/modular/pm/salesOrder";
|
|
@Autowired
|
private SalesOrderService salesOrderService;
|
|
/**
|
* 跳转到主页面
|
*
|
* @author ruimin
|
* @Date 2023-08-26
|
*/
|
@RequestMapping("")
|
public String index() {
|
return PREFIX + "/salesOrder.html";
|
}
|
|
/**
|
* 新增页面
|
*
|
* @author ruimin
|
* @Date 2023-08-26
|
*/
|
@RequestMapping("/add")
|
public String add() {
|
return PREFIX + "/salesOrder_add.html";
|
}
|
|
/**
|
* 编辑页面
|
*
|
* @author ruimin
|
* @Date 2023-08-26
|
*/
|
@RequestMapping("/edit")
|
public String edit() {
|
return PREFIX + "/salesOrder_edit.html";
|
}
|
|
/**
|
* 拆分页面
|
*
|
* @author ruimin
|
* @Date 2023-08-26
|
*/
|
@RequestMapping("/split")
|
public String split() {
|
return PREFIX + "/split.html";
|
}
|
|
/**
|
* 下发页面
|
*
|
* @author ruimin
|
* @Date 2023-08-26
|
*/
|
@RequestMapping("/bindParam")
|
public String bindParam() {
|
return PREFIX + "/bindParam.html";
|
}
|
|
/**
|
* 下发详情页面
|
*
|
* @author ruimin
|
* @Date 2023-08-26
|
*/
|
@RequestMapping("/distributeDetails")
|
public String distributeDetails() {
|
return PREFIX + "/bulletBox/distributeDetails.html";
|
}
|
|
/**
|
* 新增接口
|
*
|
* @author ruimin
|
* @Date 2023-08-26
|
*/
|
@RequestMapping("/addItem")
|
@ResponseBody
|
@DataSource(name = "self")
|
public ResponseData addItem(SalesOrderParam salesOrderParam) {
|
this.salesOrderService.add(salesOrderParam);
|
return ResponseData.success();
|
}
|
|
/**
|
* 编辑接口
|
*
|
* @author ruimin
|
* @Date 2023-08-26
|
*/
|
@RequestMapping("/editItem")
|
@ResponseBody
|
@DataSource(name = "self")
|
public ResponseData editItem(SalesOrderParam salesOrderParam) {
|
this.salesOrderService.update(salesOrderParam);
|
return ResponseData.success();
|
}
|
|
/**
|
* 编辑接口
|
*
|
* @author ruimin
|
* @Date 2023-08-26
|
*/
|
@RequestMapping("/updateBySalesOrderId")
|
@ResponseBody
|
@DataSource(name = "self")
|
public ResponseData updateBySalesOrderId(SalesOrderParam salesOrderParam) {
|
SalesOrder byId = this.salesOrderService.getById(salesOrderParam.getId());
|
byId.setState("2");
|
this.salesOrderService.saveOrUpdate(byId);
|
return ResponseData.success();
|
}
|
|
|
/**
|
* 删除接口
|
*
|
* @author ruimin
|
* @Date 2023-08-26
|
*/
|
@RequestMapping("/delete")
|
@ResponseBody
|
@DataSource(name = "self")
|
public ResponseData delete(SalesOrderParam salesOrderParam) {
|
this.salesOrderService.delete(salesOrderParam);
|
return ResponseData.success();
|
}
|
|
/**
|
* 查看详情接口
|
*
|
* @author ruimin
|
* @Date 2023-08-26
|
*/
|
@RequestMapping("/detail")
|
@ResponseBody
|
@DataSource(name = "self")
|
public ResponseData detail(SalesOrderParam salesOrderParam) {
|
SalesOrder detail = this.salesOrderService.getById(salesOrderParam.getId());
|
return ResponseData.success(detail);
|
}
|
|
/**
|
* 查询列表
|
*
|
* @author ruimin
|
* @Date 2023-08-26
|
*/
|
@ResponseBody
|
@RequestMapping("/list")
|
@DataSource(name = "self")
|
public LayuiPageInfo list(SalesOrderParam salesOrderParam) {
|
return this.salesOrderService.findPageBySpec(salesOrderParam);
|
}
|
|
/**
|
* 拆分订单方法
|
*
|
* @author ruimin
|
* @Date 2023-08-26
|
*/
|
@ResponseBody
|
@RequestMapping("/breakDownOrders")
|
@DataSource(name = "self")
|
public LayuiPageInfo breakDownOrders(SalesOrderParam salesOrderParam) {
|
return this.salesOrderService.breakDownOrders(salesOrderParam);
|
}
|
|
/**
|
* 拆分绑定下发方法
|
*
|
* @author ruimin
|
* @Date 2023-08-26
|
*/
|
@ResponseBody
|
@RequestMapping("/DistributeSalesOrder")
|
@DataSource(name = "self")
|
public ResponseData DistributeSalesOrder(SalesOrderParam salesOrderParam) {
|
this.salesOrderService.DistributeSalesOrder(salesOrderParam);
|
return ResponseData.success();
|
}
|
|
/**
|
* 导入excel
|
*
|
* @author liwenya
|
* @Date 2021-07-09
|
*/
|
@SneakyThrows
|
@RequestMapping(value = "/importIn")
|
@ResponseBody
|
@DataSource(name = "self")
|
public ResponseData importIn(@RequestPart("file") MultipartFile file, HttpServletRequest request) throws IOException {
|
|
List<SalesOrder> list = new ArrayList<>();
|
XSSFWorkbook sheets = new XSSFWorkbook(file.getInputStream());
|
//获取sheet
|
XSSFSheet sheet = sheets.getSheet(sheets.getSheetName(0));
|
int rows = sheet.getPhysicalNumberOfRows();
|
for(int i = 2; i < rows; i++){
|
//获取列数
|
XSSFRow row = sheet.getRow(i);
|
SalesOrder salesOrder = new SalesOrder();
|
salesOrder.setSalesOrderCode(String.valueOf(row.getCell(0)).replace(".0", ""));
|
salesOrder.setCustomerNo(String.valueOf(row.getCell(1)).replace(".0", ""));
|
salesOrder.setCargoNo(row.getCell(2).toString().replace(".0", ""));
|
salesOrder.setProductCode(row.getCell(3).toString().replace(".0", ""));
|
salesOrder.setProductName(row.getCell(4).toString().replace(".0", ""));
|
Cell planNumber = row.getCell(5);
|
if(!Objects.equals(planNumber, null) && !Objects.equals(planNumber.toString(),"")){
|
double d = planNumber.getNumericCellValue();
|
salesOrder.setPlanNumber((int) d);
|
}
|
|
Cell planStartTime = row.getCell(6);
|
if(HSSFDateUtil.isCellDateFormatted(planStartTime)){
|
Date d = planStartTime.getDateCellValue();
|
salesOrder.setPlanStartTime(d);
|
}
|
|
Cell planEndTime = row.getCell(7);
|
if(HSSFDateUtil.isCellDateFormatted(planEndTime)){
|
Date d = planEndTime.getDateCellValue();
|
salesOrder.setPlanEndTime(d);
|
}
|
|
salesOrder.setWorkshopCode(row.getCell(8).toString().replace(".0", ""));
|
salesOrder.setLineCode(row.getCell(9).toString().replace(".0", ""));
|
|
Cell deliveryTime = row.getCell(10);
|
if(HSSFDateUtil.isCellDateFormatted(deliveryTime)){
|
Date d = deliveryTime.getDateCellValue();
|
salesOrder.setDeliveryTime(d);
|
}
|
|
salesOrder.setOrderSource(row.getCell(11).toString().replace(".0", ""));
|
salesOrder.setRemark(row.getCell(12).toString().replace(".0", ""));
|
salesOrder.setState("1");
|
list.add(salesOrder);
|
}
|
|
for(SalesOrder salesOrder : list){
|
salesOrderService.save(salesOrder);
|
}
|
return ResponseData.success("上传成功");
|
}
|
|
/**
|
* excel导出模板
|
*
|
* @author liwenya
|
* @Date 2021年7月9日 17点01分
|
*/
|
@RequestMapping("/exportOut")
|
public void exportOut(ModelMap modelMap, HttpServletRequest request,
|
HttpServletResponse response) {
|
List<ExcelExportEntity> entity = new ArrayList<>();
|
entity.add(new ExcelExportEntity("订单编号", "salesOrderCode"));
|
entity.add(new ExcelExportEntity("客户编号", "customerNo"));
|
entity.add(new ExcelExportEntity("货号", "cargoNo"));
|
entity.add(new ExcelExportEntity("产品编号", "productCode"));
|
entity.add(new ExcelExportEntity("产品名称", "productName"));
|
entity.add(new ExcelExportEntity("计划数量", "planNumber"));
|
entity.add(new ExcelExportEntity("计划开始时间", "planStartTime"));
|
entity.add(new ExcelExportEntity("计划结束时间", "planEndTime"));
|
entity.add(new ExcelExportEntity("车间编码", "workshopCode"));
|
entity.add(new ExcelExportEntity("产线编码", "lineCode"));
|
entity.add(new ExcelExportEntity("交货时间", "deliveryTime"));
|
entity.add(new ExcelExportEntity("订单来源", "orderSource"));
|
entity.add(new ExcelExportEntity("备注", "remark"));
|
|
ExportParams params = new ExportParams("生产订单", "生产订单", ExcelType.XSSF);
|
modelMap.put(MapExcelConstants.MAP_LIST, new ArrayList<>());
|
modelMap.put(MapExcelConstants.ENTITY_LIST, entity);
|
modelMap.put(MapExcelConstants.PARAMS, params);
|
modelMap.put(MapExcelConstants.FILE_NAME, "生产订单");
|
PoiBaseView.render(modelMap, request, response, MapExcelConstants.EASYPOI_MAP_EXCEL_VIEW);
|
}
|
|
|
}
|