diff --git a/src/main/java/com/dsic/gj_erp/bean/jhgk/DmSygdxq.java b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmSygdxq.java new file mode 100644 index 0000000..2e76062 --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmSygdxq.java @@ -0,0 +1,94 @@ +package com.dsic.gj_erp.bean.jhgk; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author xn + * @since 2023-11-02 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="DmSygdxq对象", description="") +public class DmSygdxq implements Serializable { + + private static final long serialVersionUID=1L; + + @ApiModelProperty(value = "分段") + @TableField("DC_FD") + private String dcFd; + + @ApiModelProperty(value = "总段号") + private String zdh; + + @ApiModelProperty(value = "大组极重") + private Double dzjz; + + @ApiModelProperty(value = "总装部最新分段需求期") + private String zxfdxq; + + @ApiModelProperty(value = "钢料需求") + private String xzglxq; + private String dzglxq; + @ApiModelProperty(value = "钢料需求") + private String xzglxqOld; + private String dzglxqOld; + + @ApiModelProperty(value = "X大板") + private String xdb; + + @ApiModelProperty(value = "X数控件") + private String xskj; + + @ApiModelProperty(value = "X平铁") + private String xpt; + + @ApiModelProperty(value = "X压弯") + private String xyw; + + @ApiModelProperty(value = "X型材") + private String xxc; + + @ApiModelProperty(value = "X二次装T型材") + private String xtxc; + + + @ApiModelProperty(value = "D曲板") + private String dqb; + + @ApiModelProperty(value = "D型材T") + private String dxc; + + @ApiModelProperty(value = "D散件") + private String dsj; + + @ApiModelProperty(value = "D大板") + private String ddb; + + @TableId(value = "id", type = IdType.ASSIGN_UUID) + private String id; + + private String dcCh; + + private String dcPl; + + private String drr; + private String drrq; + + private int drcs=1; + + private String xqzt="0"; + + +} diff --git a/src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjh.java b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjh.java new file mode 100644 index 0000000..883ae73 --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjh.java @@ -0,0 +1,240 @@ +package com.dsic.gj_erp.bean.jhgk; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author xn + * @since 2023-11-09 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="DmYdjh对象", description="") +public class DmYdjh implements Serializable { + + private static final long serialVersionUID=1L; + + @ApiModelProperty(value = "产品") + private String dcCh; + + @ApiModelProperty(value = "数据来源船") + private String dcCh1; + + @ApiModelProperty(value = "批量") + private String dcPl; + + @ApiModelProperty(value = "领取类型") + @TableField("LQLB") + private String lqlb; + + @ApiModelProperty(value = "套料图号") + private String tzbh; + + @ApiModelProperty(value = "规格") + private String wpgg; + + @ApiModelProperty(value = "材质") + private String wpxh; + + @ApiModelProperty(value = "划线长度(米)") + private Double hxcd; + + @ApiModelProperty(value = "切割长度(米)") + private Double qgcd; + + @ApiModelProperty(value = "曲标识") + private String qbs; + + @ApiModelProperty(value = "坡口类型") + private Double pklx; + + @ApiModelProperty(value = "坡口长度") + private Double pkcd; + + @ApiModelProperty(value = "零件数量") + private Double ljsl; + + @ApiModelProperty(value = "组立") + private String zl; + + @ApiModelProperty(value = "加工类型") + private String lx; + + @ApiModelProperty(value = "型材米数") + private Double xcms; + + @ApiModelProperty(value = "跨位") + private String kw; + + @ApiModelProperty(value = "上料日期") + private String slrq; + + @ApiModelProperty(value = "上料人员") + private String slry; + + @ApiModelProperty(value = "抛丸") + private String pw; + + @ApiModelProperty(value = "抛丸人员") + private String pwry; + + @ApiModelProperty(value = "抛丸日期") + private String pwrq; + + @ApiModelProperty(value = "划线设备") + private String hxsb; + + @ApiModelProperty(value = "划线人员") + private String hxry; + + @ApiModelProperty(value = "划线日期") + private String hxrq; + + @ApiModelProperty(value = "切割设备") + private String qgsb; + + @ApiModelProperty(value = "切割人员") + private String qgry; + + @ApiModelProperty(value = "切割日期") + private String qgrq; + + @ApiModelProperty(value = "打磨长度") + private Double dmcd; + + @ApiModelProperty(value = "打磨设备") + private String dmsb; + + @ApiModelProperty(value = "打磨人员") + private String dmry; + + @ApiModelProperty(value = "打磨日期") + private String dmrq; + + @ApiModelProperty(value = "抛丸设备") + private String pwsb; + + @ApiModelProperty(value = "坡口设备") + private String pksb; + + @ApiModelProperty(value = "坡口人员") + private String pkry; + + @ApiModelProperty(value = "坡口日期") + private String pkrq; + + @ApiModelProperty(value = "分段号") + @TableField("DC_FD") + private String dcFd; + + @ApiModelProperty(value = "钢加大组结束") + private String gjjsDz; + + @ApiModelProperty(value = "钢加小组结束") + private String gjjsXz; + + @ApiModelProperty(value = "套料图接收") + private String jsqTlt; + + @ApiModelProperty(value = "领取表接收") + private String jsqLqb; + + @ApiModelProperty(value = "订货清单号") + private String dhqd; + + @ApiModelProperty(value = "订货数量") + private Double orderBs; + + @ApiModelProperty(value = "到货数量") + private Double arrivalBs; + + @ApiModelProperty(value = "区域") + private String qy; + + @ApiModelProperty(value = "矫正标识") + private String jzbs; + + @ApiModelProperty(value = "矫正设备") + private String jzsb; + + @ApiModelProperty(value = "矫正人员") + private String jzry; + + @ApiModelProperty(value = "曲加工设备") + private String qjgsb; + + @ApiModelProperty(value = "曲加工人员") + private String qjgry; + + @ApiModelProperty(value = "曲加工日期") + private String qjgrq; + + @ApiModelProperty(value = "本船号") + @TableField("dcCh2") + private String dcCh2; + + @ApiModelProperty(value = "钢加开始") + private String gjks; + + @ApiModelProperty(value = "时间更新时间") + private String gxsj; + + @ApiModelProperty(value = "划线空程禅道") + private Double hxkcCd; + + @ApiModelProperty(value = "切割空程长度") + private Double qgkcCd; + + @ApiModelProperty(value = "结束时间") + private String jssj; + + @ApiModelProperty(value = "矫正日期") + private String jzrq; + + @ApiModelProperty(value = "划线空程长度") + private Double hxcdKc; + + @ApiModelProperty(value = "切割空程长度") + private Double qgcdKc; + + @ApiModelProperty(value = "状态:0编辑 1提交 2下发 3完成 4拖期") + private String zt; + + @ApiModelProperty(value = "根数") + private Double xcgs; + + @ApiModelProperty(value = "板材领取重量") + private Double bclqzl; + + @ApiModelProperty(value = "板材实耗重量") + private Double bcshzl; + + @ApiModelProperty(value = "板材余料重量") + private Double bcylzl; + + @ApiModelProperty(value = "板材零件套料重量") + private Double bcljtlzl; + + @ApiModelProperty(value = "前批余料代") + private Double bcqpyld; + + @TableId(value = "id", type = IdType.ASSIGN_UUID) + private String id; + + private String ylbhgg; + + private String parentId; + + +} diff --git a/src/main/java/com/dsic/gj_erp/bean/jhgk/excel/GdxqExcel.java b/src/main/java/com/dsic/gj_erp/bean/jhgk/excel/GdxqExcel.java new file mode 100644 index 0000000..27e99eb --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/bean/jhgk/excel/GdxqExcel.java @@ -0,0 +1,87 @@ +package com.dsic.gj_erp.bean.jhgk.excel; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.format.DateTimeFormat; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author xn + * @since 2023-09-18 + */ +@Data +public class GdxqExcel { + + private static final long serialVersionUID=1L; + @ApiModelProperty(value = "分段") + @ExcelProperty(index = 3) + private String dcFd; + + @ApiModelProperty(value = "总段号") + @ExcelProperty(index = 2) + private String zdh; + + @ApiModelProperty(value = "大组极重") + @ExcelProperty(index = 4) + private Double dzjz; + + @ApiModelProperty(value = "总装部最新分段需求期") + @DateTimeFormat("yyyy/MM/dd") + @ExcelProperty(index = 5) + private String zxfdxq; + + @ApiModelProperty(value = "钢料需求") + @DateTimeFormat("yyyy/MM/dd") + @ExcelProperty(index = 6) + private String xzglxq; + + @ApiModelProperty(value = "X大板") + @DateTimeFormat("yyyy/MM/dd") + @ExcelProperty(index = 7) + private String xdb; + + @ApiModelProperty(value = "X数控件") + @DateTimeFormat("yyyy/MM/dd") + @ExcelProperty(index = 8) + private String xskj; + + @ApiModelProperty(value = "X平铁") + @DateTimeFormat("yyyy/MM/dd") + @ExcelProperty(index = 9) + private String xpt; + + @ApiModelProperty(value = "X压弯") + @DateTimeFormat("yyyy/MM/dd") + @ExcelProperty(index = 10) + private String xyw; + + @ApiModelProperty(value = "X型材") + @DateTimeFormat("yyyy/MM/dd") + @ExcelProperty(index = 11) + private String xxc; + + @ApiModelProperty(value = "X二次装T型材") + @DateTimeFormat("yyyy/MM/dd") + @ExcelProperty(index = 12) + private String xtxc; + @ExcelProperty(index = 0) + private String dcCh; + + @ExcelProperty(index = 1) + private String dcPl; + + @ExcelIgnore + private String zl="xz"; +} diff --git a/src/main/java/com/dsic/gj_erp/bean/jhgk/excel/GdxqExcel1.java b/src/main/java/com/dsic/gj_erp/bean/jhgk/excel/GdxqExcel1.java new file mode 100644 index 0000000..8beba9f --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/bean/jhgk/excel/GdxqExcel1.java @@ -0,0 +1,72 @@ +package com.dsic.gj_erp.bean.jhgk.excel; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.format.DateTimeFormat; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author xn + * @since 2023-09-18 + */ +@Data +public class GdxqExcel1 { + + private static final long serialVersionUID=1L; + @ApiModelProperty(value = "分段") + @ExcelProperty(index = 3) + private String dcFd; + + @ApiModelProperty(value = "总段号") + @ExcelProperty(index = 2) + private String zdh; + + @ApiModelProperty(value = "大组极重") + @ExcelProperty(index = 4) + private String dzjz; + + @ApiModelProperty(value = "钢料需求") + @DateTimeFormat("yyyy/MM/dd") + @ExcelProperty(index = 5) + private String dzglxq; + + @ApiModelProperty(value = "D曲板") + @DateTimeFormat("yyyy/MM/dd") + @ExcelProperty(index = 6) + private String dqb; + + @ApiModelProperty(value = "D型材T") + @DateTimeFormat("yyyy/MM/dd") + @ExcelProperty(index = 7) + private String dxc; + + @ApiModelProperty(value = "D散件") + @DateTimeFormat("yyyy/MM/dd") + @ExcelProperty(index = 8) + private String dsj; + + @ApiModelProperty(value = "D大板") + @DateTimeFormat("yyyy/MM/dd") + @ExcelProperty(index = 9) + private String ddb; + + @ExcelProperty(index = 0) + private String dcCh; + + @ExcelProperty(index = 1) + private String dcPl; + + @ExcelIgnore + private String zl="dz"; +} diff --git a/src/main/java/com/dsic/gj_erp/controller/jcsj/EmSbrydypController.java b/src/main/java/com/dsic/gj_erp/controller/jcsj/EmSbrydypController.java index 36deea1..5d90c43 100644 --- a/src/main/java/com/dsic/gj_erp/controller/jcsj/EmSbrydypController.java +++ b/src/main/java/com/dsic/gj_erp/controller/jcsj/EmSbrydypController.java @@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSONObject; import com.dsic.gj_erp.annotation.AuthFunction; import com.dsic.gj_erp.bean.ResultBean; import com.dsic.gj_erp.bean.jcsj.EmSbrydyp; -import com.dsic.gj_erp.bean.request.EmSbrydypBean; import com.dsic.gj_erp.service.jcsj.EmSbrydypService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; diff --git a/src/main/java/com/dsic/gj_erp/controller/jhgk/DmQfxqController.java b/src/main/java/com/dsic/gj_erp/controller/jhgk/DmQfxqController.java index 1dce1da..6037403 100644 --- a/src/main/java/com/dsic/gj_erp/controller/jhgk/DmQfxqController.java +++ b/src/main/java/com/dsic/gj_erp/controller/jhgk/DmQfxqController.java @@ -41,9 +41,9 @@ public class DmQfxqController { @AuthFunction public ResultBean getList(@RequestBody DmQfxq qfxq){ List list=service.list(new QueryWrapper() - .eq(StrUtil.isNotEmpty(qfxq.getDcCh()),"DC_CH",qfxq.getDcCh()) + .eq(StrUtil.isNotEmpty(qfxq.getDb()),"substring(db,0,8) ",qfxq.getDb()) .eq(StrUtil.isNotEmpty(qfxq.getZt()),"zt",qfxq.getZt()) - .eq(StrUtil.isNotEmpty(qfxq.getDcPl()),"DC_PL",qfxq.getDcPl())); + .orderByAsc("DC_CH,cast(dc_pl as int),DC_FD")); return new ResultBean(list); } @@ -65,8 +65,7 @@ public class DmQfxqController { ExcelQFListener objectListener = new ExcelQFListener(); EasyExcel.read(file.getInputStream(), QfExcel.class, objectListener).sheet(0).headRowNumber(1).doRead(); List objList = objectListener.getObjectList(); - service.uploadQf(objList,czbh,req); - return new ResultBean(); + return service.uploadQf(objList,czbh,req); } //保存 diff --git a/src/main/java/com/dsic/gj_erp/controller/jhgk/DmSygdMxController.java b/src/main/java/com/dsic/gj_erp/controller/jhgk/DmSygdMxController.java index ca9c0d5..b3ce5e8 100644 --- a/src/main/java/com/dsic/gj_erp/controller/jhgk/DmSygdMxController.java +++ b/src/main/java/com/dsic/gj_erp/controller/jhgk/DmSygdMxController.java @@ -66,11 +66,7 @@ public class DmSygdMxController { @AuthFunction public ResultBean symxhz(@RequestBody List list){ Map map=new HashMap<>(); - //线表计划 - //批量信息 - //图纸信息 - //到货信息 - //跨位生产信息 + map.put("xbList",service.getXBList(list)); map.put("plList",service.getPl(list)); map.put("tzList",service.getTZList(list)); diff --git a/src/main/java/com/dsic/gj_erp/controller/jhgk/DmSygdxqController.java b/src/main/java/com/dsic/gj_erp/controller/jhgk/DmSygdxqController.java new file mode 100644 index 0000000..dc3563c --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/controller/jhgk/DmSygdxqController.java @@ -0,0 +1,125 @@ +package com.dsic.gj_erp.controller.jhgk; + + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.excel.EasyExcel; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.dsic.gj_erp.annotation.AuthFunction; +import com.dsic.gj_erp.bean.ResultBean; +import com.dsic.gj_erp.bean.jhgk.DmSygdxq; +import com.dsic.gj_erp.bean.jhgk.excel.GdxqExcel; +import com.dsic.gj_erp.bean.jhgk.excel.GdxqExcel1; +import com.dsic.gj_erp.exception.CustomException; +import com.dsic.gj_erp.listeners.ExcelGdxq1Listener; +import com.dsic.gj_erp.listeners.ExcelGdxqListener; +import com.dsic.gj_erp.service.jhgk.DmSygdxqService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import springfox.documentation.spring.web.json.Json; + +import javax.servlet.http.HttpServletRequest; +import java.util.*; +import java.util.stream.Collectors; + +/** + *

+ * 前端控制器 + *

+ * + * @author xn + * @since 2023-11-02 + */ +@RestController +@RequestMapping("/dmSygdxq") +public class DmSygdxqController { + + @Autowired + private DmSygdxqService service; + + @RequestMapping("/getList") + @AuthFunction + public ResultBean getList(@RequestBody Map map) { + List list = service.list(new QueryWrapper() + .ge(StrUtil.isNotEmpty(map.get("beginTime")), "xzglxq", map.get("beginTime")) + .le(StrUtil.isNotEmpty(map.get("endTime")), "xzglxq", map.get("endTime")) + .orderByAsc("dc_ch, cast(dc_pl as int),xzglxq")); + if (ObjUtil.isEmpty(list)) { + return new ResultBean(); + } +// Map> groupByZl = list.stream().collect(Collectors.groupingBy(DmSygdxq::getZl)); + + Map> m = + list.stream() + .filter(x -> Objects.nonNull(x.getXzglxq()) && Objects.nonNull(x.getDzjz())) + .collect(Collectors.groupingBy(DmSygdxq::getDcCh + , Collectors.groupingBy(x -> x.getXzglxq().substring(5, 7) + , Collectors.summingDouble(l -> l.getDzjz()) + ))); + + List list1 = new ArrayList<>(); + for (String ch : m.keySet()) { + String str = "\"dcCh\":" +"\"" +ch+"\"" ; + for (String month : m.get(ch).keySet()) { + str += ",\"yf" + month + "\":\"" + m.get(ch).get(month)+"\""; + } + str = "{" + str + "}"; + Json j = new Json(str); + list1.add(j); + } + Map map1 = new HashMap(); + map1.put("hz", list1); + map1.put("list", list); + return new ResultBean(map1); + } + + @PostMapping("/upload") + @AuthFunction + @ResponseBody + public ResultBean uploadQf(@RequestParam("file") MultipartFile file, HttpServletRequest req) throws Exception, CustomException { + + ExcelGdxqListener objectListener = new ExcelGdxqListener(); + ExcelGdxq1Listener objectListener1 = new ExcelGdxq1Listener(); + + EasyExcel.read(file.getInputStream(), GdxqExcel.class, objectListener).sheet(0).headRowNumber(1).doRead(); + List objList = objectListener.getObjectList(); + + EasyExcel.read(file.getInputStream(), GdxqExcel1.class, objectListener1).sheet(1).headRowNumber(1).doRead(); + List objList1 = objectListener1.getObjectList(); + List list = BeanUtil.copyToList(objList, DmSygdxq.class); + List list1 = BeanUtil.copyToList(objList1, DmSygdxq.class); + String username=(String) req.getAttribute("yhms"); + String day=DateUtil.format(DateUtil.date(), "yyyy/MM/dd"); + service.saveXzList(list,username,day); + service.saveDzList(list1,username,day); + + + + return new ResultBean(); + } + + public static void main(String[] agrs) { +// String a = "2023/08/20"; +// String b = "2023/08/21"; +// System.out.println(a.compareTo(b)); + System.out.println(DateUtil.format(DateUtil.nextMonth(),"yyyy/MM")); +// String[] a={"船只", "批量号", "总段号", "分段号", "大组极重", "总装部最新分段需求期", "钢料需求", "X大板", "X数控件", "X平铁", "X压弯", "X型材", "X二次装T型材"}; +// String[] b={"船只", "批量号", "总段号", "分段号", "大组极重", "钢料需求", "D大板", "D曲板", "D型材T", "D散件"}; +// String[] a1={"dcCh","dcPl", "zdh","dcFd","dzjz","zxfdxq", "glxq", "xdb", "xskj,", +// "xpt,", "xyw", "xxc", "xtxc", }; +// String[] b1={"dcCh","dcPl","zdh","dcFd","dzjz","glxq", "dqb", "dxc", "dsj", "ddb"}; +// for (int i = 0; i < b.length; i++) { +// System.out.println("{ field: '"+b1[i]+"', title: '"+b[i]+"', width: 120, \n" + +// " filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],\n" + +// " filterRender: { name: 'FilterCombination', },\n" + +// "},"); +// } + + } + +} + diff --git a/src/main/java/com/dsic/gj_erp/controller/jhgk/DmYdjhController.java b/src/main/java/com/dsic/gj_erp/controller/jhgk/DmYdjhController.java new file mode 100644 index 0000000..3ac4414 --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/controller/jhgk/DmYdjhController.java @@ -0,0 +1,53 @@ +package com.dsic.gj_erp.controller.jhgk; + + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.dsic.gj_erp.annotation.AuthFunction; +import com.dsic.gj_erp.bean.ResultBean; +import com.dsic.gj_erp.bean.jhgk.DmSygdMx; +import com.dsic.gj_erp.bean.jhgk.DmYdjh; +import com.dsic.gj_erp.service.jhgk.DmYdjhService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 前端控制器 + *

+ * + * @author xn + * @since 2023-11-09 + */ +@RestController +@RequestMapping("/dmYdjh") +public class DmYdjhController { + + @Autowired + private DmYdjhService service; + + @RequestMapping("/getList") + @AuthFunction + public ResultBean getList(@RequestBody DmSygdMx sygd){ + List list= service.list(new QueryWrapper() + .eq(StrUtil.isNotEmpty(sygd.getDcCh()),"dc_ch",sygd.getDcCh()) + .eq(StrUtil.isNotEmpty(sygd.getDcPl()),"dc_pl",sygd.getDcPl()) + .ge(StrUtil.isNotEmpty(sygd.getBeginTime()),"jssj",sygd.getBeginTime()) + .le(StrUtil.isNotEmpty(sygd.getEndTime()),"jssj",sygd.getEndTime()) + .orderByAsc("jssj,dc_ch,dc_pl") + ); + return new ResultBean(list); + } + + @RequestMapping("/tjydjh") + @AuthFunction + public ResultBean tjydjh(){ + service.tjydjh(); + return new ResultBean(); + } +} + diff --git a/src/main/java/com/dsic/gj_erp/listeners/ExcelGdxq1Listener.java b/src/main/java/com/dsic/gj_erp/listeners/ExcelGdxq1Listener.java new file mode 100644 index 0000000..e542d8c --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/listeners/ExcelGdxq1Listener.java @@ -0,0 +1,104 @@ +package com.dsic.gj_erp.listeners; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import com.dsic.gj_erp.bean.jhgk.excel.GdxqExcel1; +import com.dsic.gj_erp.util.ObjConvertUtils; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * Excel通用监听器 + */ +public class ExcelGdxq1Listener extends AnalysisEventListener { + + private static final int BATCH_COUNT = 5; + + List objectList = new ArrayList<>(); + List headList = new ArrayList<>(); + private String sheetName; + + List datas = new ArrayList(); + + @Override + public void invoke(GdxqExcel1 excelDemo, AnalysisContext analysisContext) { + //每解析一行数据,就会调用该方法一次 + //正常在这里调用数据处理得办法 + + //一条数据添加到暂时存储的存储结构中 + + boolean b = ObjConvertUtils.checkObjAllFieldsIsNull(excelDemo); + String dcCh = excelDemo.getDcCh(); + String dcpl = excelDemo.getDcPl(); + String dcfd = excelDemo.getDcFd(); + if(!b && StringUtils.isNotBlank(dcCh) && StringUtils.isNotBlank(dcpl) && StringUtils.isNotBlank(dcfd)){ + datas.add(excelDemo); + } + + // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM + if (datas.size() >= BATCH_COUNT) { + saveData(); + // 存储完成清理 list + datas.clear(); + } + } + + + @Override + public void doAfterAllAnalysed(AnalysisContext context) { + //获取sheetName + saveData(); + sheetName = context.readSheetHolder().getSheetName(); +// LOGGER.info("所有数据解析完成!"); + } + + //获取表头 + @Override + public void invokeHeadMap(Map headMap, AnalysisContext context) { + //把表头数据加入到存储结构中 + headList.add(headMap); + } + + /** + * 入库 + */ + private void saveData() { + //添加到返回的存储结构中,也可直接存储到数据库 + objectList.addAll(datas); + } + + public List getDatas() { + return datas; + } + + public void setDatas(List datas) { + this.datas = datas; + } + + public List getObjectList() { + return objectList; + } + + public void setObjectList(List objectList) { + this.objectList = objectList; + } + + public String getSheetName() { + return sheetName; + } + + public void setSheetName(String sheetName) { + this.sheetName = sheetName; + } + + public List getHeadList() { + return headList; + } + + public void setHeadList(List headList) { + this.headList = headList; + } +} diff --git a/src/main/java/com/dsic/gj_erp/listeners/ExcelGdxqListener.java b/src/main/java/com/dsic/gj_erp/listeners/ExcelGdxqListener.java new file mode 100644 index 0000000..d41897b --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/listeners/ExcelGdxqListener.java @@ -0,0 +1,104 @@ +package com.dsic.gj_erp.listeners; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import com.dsic.gj_erp.bean.jhgk.excel.GdxqExcel; +import com.dsic.gj_erp.util.ObjConvertUtils; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * Excel通用监听器 + */ +public class ExcelGdxqListener extends AnalysisEventListener { + + private static final int BATCH_COUNT = 5; + + List objectList = new ArrayList<>(); + List headList = new ArrayList<>(); + private String sheetName; + + List datas = new ArrayList(); + + @Override + public void invoke(GdxqExcel excelDemo, AnalysisContext analysisContext) { + //每解析一行数据,就会调用该方法一次 + //正常在这里调用数据处理得办法 + + //一条数据添加到暂时存储的存储结构中 + + boolean b = ObjConvertUtils.checkObjAllFieldsIsNull(excelDemo); + String dcCh = excelDemo.getDcCh(); + String dcpl = excelDemo.getDcPl(); + String dcfd = excelDemo.getDcFd(); + if(!b && StringUtils.isNotBlank(dcCh) && StringUtils.isNotBlank(dcpl) && StringUtils.isNotBlank(dcfd)){ + datas.add(excelDemo); + } + + // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM + if (datas.size() >= BATCH_COUNT) { + saveData(); + // 存储完成清理 list + datas.clear(); + } + } + + + @Override + public void doAfterAllAnalysed(AnalysisContext context) { + //获取sheetName + saveData(); + sheetName = context.readSheetHolder().getSheetName(); +// LOGGER.info("所有数据解析完成!"); + } + + //获取表头 + @Override + public void invokeHeadMap(Map headMap, AnalysisContext context) { + //把表头数据加入到存储结构中 + headList.add(headMap); + } + + /** + * 入库 + */ + private void saveData() { + //添加到返回的存储结构中,也可直接存储到数据库 + objectList.addAll(datas); + } + + public List getDatas() { + return datas; + } + + public void setDatas(List datas) { + this.datas = datas; + } + + public List getObjectList() { + return objectList; + } + + public void setObjectList(List objectList) { + this.objectList = objectList; + } + + public String getSheetName() { + return sheetName; + } + + public void setSheetName(String sheetName) { + this.sheetName = sheetName; + } + + public List getHeadList() { + return headList; + } + + public void setHeadList(List headList) { + this.headList = headList; + } +} diff --git a/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmSygdxqMapper.java b/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmSygdxqMapper.java new file mode 100644 index 0000000..3f0c5e3 --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmSygdxqMapper.java @@ -0,0 +1,17 @@ +package com.dsic.gj_erp.mapper.jhgk; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dsic.gj_erp.bean.jhgk.DmSygdxq; + +/** + *

+ * Mapper 接口 + *

+ * + * @author xn + * @since 2023-11-02 + */ +public interface DmSygdxqMapper extends BaseMapper { + +} diff --git a/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmYdjhMapper.java b/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmYdjhMapper.java new file mode 100644 index 0000000..1828268 --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmYdjhMapper.java @@ -0,0 +1,17 @@ +package com.dsic.gj_erp.mapper.jhgk; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dsic.gj_erp.bean.jhgk.DmYdjh; + +/** + *

+ * Mapper 接口 + *

+ * + * @author xn + * @since 2023-11-09 + */ +public interface DmYdjhMapper extends BaseMapper { + +} diff --git a/src/main/java/com/dsic/gj_erp/service/jcsj/EmSbrydypService.java b/src/main/java/com/dsic/gj_erp/service/jcsj/EmSbrydypService.java index 41dbf72..b6779ae 100644 --- a/src/main/java/com/dsic/gj_erp/service/jcsj/EmSbrydypService.java +++ b/src/main/java/com/dsic/gj_erp/service/jcsj/EmSbrydypService.java @@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.dsic.gj_erp.bean.jcsj.EmSbcnp; import com.dsic.gj_erp.bean.jcsj.EmSbrydyp; import com.dsic.gj_erp.bean.jcsj.EmSbwxjh; -import com.dsic.gj_erp.bean.request.EmSbrydypBean; import com.dsic.gj_erp.bean.request.EmSbwxjhBean; import javax.servlet.http.HttpServletRequest; diff --git a/src/main/java/com/dsic/gj_erp/service/jcsj/impl/EmSbrydypServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jcsj/impl/EmSbrydypServiceImpl.java index 08f1525..2355052 100644 --- a/src/main/java/com/dsic/gj_erp/service/jcsj/impl/EmSbrydypServiceImpl.java +++ b/src/main/java/com/dsic/gj_erp/service/jcsj/impl/EmSbrydypServiceImpl.java @@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsic.gj_erp.bean.jcsj.EmSbrydyp; -import com.dsic.gj_erp.bean.request.EmSbrydypBean; import com.dsic.gj_erp.dao.jcsj.EmSbrydypRepository; import com.dsic.gj_erp.mapper.jcsj.EmSbrydypMapper; import com.dsic.gj_erp.service.jcsj.EmSbrydypService; diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/DmQfxqService.java b/src/main/java/com/dsic/gj_erp/service/jhgk/DmQfxqService.java index 629bc6b..cf70954 100644 --- a/src/main/java/com/dsic/gj_erp/service/jhgk/DmQfxqService.java +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/DmQfxqService.java @@ -2,6 +2,7 @@ package com.dsic.gj_erp.service.jhgk; import com.baomidou.mybatisplus.extension.service.IService; +import com.dsic.gj_erp.bean.ResultBean; import com.dsic.gj_erp.bean.jhgk.DmQfxq; import com.dsic.gj_erp.bean.jhgk.excel.QfExcel; @@ -19,5 +20,5 @@ import java.util.Map; */ public interface DmQfxqService extends IService { - Map uploadQf(List list, String project, HttpServletRequest req); + ResultBean uploadQf(List list, String project, HttpServletRequest req); } diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/DmSygdxqService.java b/src/main/java/com/dsic/gj_erp/service/jhgk/DmSygdxqService.java new file mode 100644 index 0000000..8fd4361 --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/DmSygdxqService.java @@ -0,0 +1,20 @@ +package com.dsic.gj_erp.service.jhgk; + + +import com.baomidou.mybatisplus.extension.service.IService; +import com.dsic.gj_erp.bean.jhgk.DmSygdxq; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author xn + * @since 2023-11-02 + */ +public interface DmSygdxqService extends IService { + void saveXzList(List list, String username, String day); + void saveDzList(List list, String username, String day); +} diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/DmYdjhService.java b/src/main/java/com/dsic/gj_erp/service/jhgk/DmYdjhService.java new file mode 100644 index 0000000..f595adc --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/DmYdjhService.java @@ -0,0 +1,19 @@ +package com.dsic.gj_erp.service.jhgk; + + +import com.baomidou.mybatisplus.extension.service.IService; +import com.dsic.gj_erp.bean.jhgk.DmYdjh; + +/** + *

+ * 服务类 + *

+ * + * @author xn + * @since 2023-11-09 + */ +public interface DmYdjhService extends IService { + + + void tjydjh(); +} diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmQfxqServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmQfxqServiceImpl.java index e5976a0..4bd27b8 100644 --- a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmQfxqServiceImpl.java +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmQfxqServiceImpl.java @@ -5,10 +5,13 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsic.gj_erp.bean.ResultBean; +import com.dsic.gj_erp.bean.jcsj.excel.PlExcel; import com.dsic.gj_erp.bean.jhgk.DmQfxq; import com.dsic.gj_erp.bean.jhgk.excel.QfExcel; import com.dsic.gj_erp.mapper.jhgk.DmQfxqMapper; import com.dsic.gj_erp.service.jhgk.DmQfxqService; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -16,6 +19,8 @@ import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; /** *

@@ -31,13 +36,21 @@ public class DmQfxqServiceImpl extends ServiceImpl impleme @Override @Transactional(rollbackFor = Exception.class) - public Map uploadQf(List list, String project, HttpServletRequest req) { + public ResultBean uploadQf(List list, String project, HttpServletRequest req) { List listForSave=new ArrayList<>(); + Map> chs =list.stream().filter(f -> StringUtils.isNotBlank(f.getDcPl())) + .collect(Collectors.groupingBy(QfExcel::getDcCh,Collectors.mapping(QfExcel::getDcPl,Collectors.toSet()))); + for (String ch:chs.keySet()){ + int i= this.count(new QueryWrapper().eq("DC_CH",ch).in("DC_PL",chs.get(ch))); + if (i>0){ + return new ResultBean(false,10000, "请勿重复导入,船号:"+ch+",批量:"+chs.get(ch)); + } + } for (QfExcel q:list) { - this.remove(new QueryWrapper() - .eq("DC_CH",q.getDcCh()) - .eq("DC_PL",q.getDcPl()) - .eq("DC_FD",q.getDcFd())); +// this.remove(new QueryWrapper() +// .eq("DC_CH",q.getDcCh()) +// .eq("DC_PL",q.getDcPl()) +// .eq("DC_FD",q.getDcFd())); DmQfxq a=new DmQfxq(); BeanUtil.copyProperties(q,a); a.setBzry((String) req.getAttribute("yhms")); @@ -45,6 +58,6 @@ public class DmQfxqServiceImpl extends ServiceImpl impleme listForSave.add(a); } this.saveBatch(listForSave); - return null; + return new ResultBean(); } } diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdMxServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdMxServiceImpl.java index b0d20fa..46e053a 100644 --- a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdMxServiceImpl.java +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdMxServiceImpl.java @@ -4,6 +4,7 @@ package com.dsic.gj_erp.service.jhgk.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsic.gj_erp.bean.ResultBean; @@ -131,7 +132,7 @@ public class DmSygdMxServiceImpl extends ServiceImpl i "pklx,pkcd,qbs,dmcd,ljsl") .eq("dcch",zrcjh.getDcCh()) .eq("pl",zrcjh.getDcPl().length()<3?"0"+zrcjh.getDcPl():zrcjh.getDcPl()) - .eq("cs",3) +// .eq("cs",3) .groupBy("dcch,sjch,pl,tzbh,lqlb,zl,wpgg,wpcz,kw,hxcd,qgcd,\n" + "pklx,pkcd,qbs,dmcd,ljsl") ); @@ -181,13 +182,40 @@ public class DmSygdMxServiceImpl extends ServiceImpl i for (DmBom b:list){ DmSygdMx mx=new DmSygdMx(); zrcToMx(zrcjh,mx); -// mx.setXcms(b.getXcshms()); + if (StrUtil.isNotEmpty(b.getZl())){ + if(b.getZl().equals("1110")){ + mx.setJssj(mx.getGjjsDz()); + } + if(b.getZl().equals("1010")){ + mx.setJssj(mx.getGjjsXz()); + } + if (b.getZl().equals("4230")){//焊接机器人肘板 + mx.setJssj(mx.getGjjsXz()); + } + if (b.getZl().equals("1120")){//TODO 光电 暂时按最小时间排 + if (mx.getGjjsXz().compareTo(mx.getGjjsDz())>0) + mx.setJssj(mx.getGjjsXz()); + else + mx.setJssj(mx.getGjjsDz()); + } + }else { + if (mx.getGjjsXz().compareTo(mx.getGjjsDz())>0) + mx.setJssj(mx.getGjjsDz()); + else + mx.setJssj(mx.getGjjsXz()); + } + if (mx.getJssj().compareTo("2023/08/01")<0 || mx.getJssj().compareTo("2023/08/31")>0){ + break; + } // 7850 kg 密度 计算重量 String[] wpgg=b.getWpgg().split("\\*"); - //立方米 - Double d= Double.parseDouble(wpgg[0])*Double.parseDouble(wpgg[1])*Double.parseDouble(wpgg[2])/1000000000.0; - //密度7.85t/m3 - Double c=d*7.85; + Double c=0.0; + if (wpgg.length==3){ + //立方米 + Double d= Double.parseDouble(wpgg[0])*Double.parseDouble(wpgg[1])*Double.parseDouble(wpgg[2])/1000000000.0; + //密度7.85t/m3 + c=d*7.85; + } mx.setBcshzl(c); mx.setZl(b.getZl()); mx.setTzbh(b.getTzbh()); @@ -235,21 +263,8 @@ public class DmSygdMxServiceImpl extends ServiceImpl i mx.setDcCh2(dcch); mx.setDcCh1(mbch); mx.setGxsj(DateUtil.now()); - if(b.getZl().equals("1110")){ - mx.setJssj(mx.getGjjsDz()); - } - if(b.getZl().equals("1010")){ - mx.setJssj(mx.getGjjsXz()); - } - if (b.getZl().equals("4230")){//焊接机器人肘板 - mx.setJssj(mx.getGjjsXz()); - } - if (b.getZl().equals("1120")){//TODO 光电 暂时按最小时间排 - if (mx.getGjjsXz().compareTo(mx.getGjjsDz())>0) - mx.setJssj(mx.getGjjsXz()); - else - mx.setJssj(mx.getGjjsDz()); - } + + mxList.add(mx); } } @@ -344,46 +359,6 @@ public class DmSygdMxServiceImpl extends ServiceImpl i // } this.saveBatch(list); -// 校平 - //抛丸 - - //根据跨位分组 -// Map> groupByKw=list.stream().collect(Collectors.groupingBy(x->Optional.ofNullable(x.getKw()).orElse("0") )); -// 7 1跨平直大板 -// List k1pz=groupByKw.get("7"); -// k1pz =k1pz.stream().sorted(Comparator.comparing(DmSygdMx::getPwrq,Comparator.nullsLast(Comparator.naturalOrder()))).collect(Collectors.toList()); -// //排产 - // 划线 切割 坡口 打磨 -// k1pz.forEach(k->{ -// k.setHxrq(k.getPwrq()); -// k.setQgry(k.getPwrq()); -// }); - -//// 8 1跨进线板 -// List k1jx=groupByKw.get("8"); -//// 11 2跨T型材腹板 -// List k2tf=groupByKw.get("11"); -//// 5 2跨T型材面板 -// List k2tm=groupByKw.get("5"); -//// 9 2跨超长超宽板 -// List k2c=groupByKw.get("9"); -//// 10 2跨超长超宽曲板 -// List k2cq=groupByKw.get("10"); -//// 12 2跨激光切割板 -// List k2j=groupByKw.get("12"); -//// 14 3跨厚板 -// List k3h=groupByKw.get("14"); -//// 6 3跨平铁 -// List k3p=groupByKw.get("6"); -//// 13 3跨曲板 -// List k3q=groupByKw.get("13"); -//// 15 4跨普通板 -// List k4p=groupByKw.get("15"); -//// 16 7跨型板 -// List k7x=groupByKw.get("16"); -//// 17 光电 -// List gd=groupByKw.get("17"); - } /** diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqServiceImpl.java new file mode 100644 index 0000000..5fa7ac5 --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqServiceImpl.java @@ -0,0 +1,108 @@ +package com.dsic.gj_erp.service.jhgk.impl; + + +import cn.hutool.core.util.ObjUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsic.gj_erp.bean.jhgk.DmSygdxq; +import com.dsic.gj_erp.mapper.jhgk.DmSygdxqMapper; +import com.dsic.gj_erp.service.jhgk.DmSygdxqService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author xn + * @since 2023-11-02 + */ +@Service +public class DmSygdxqServiceImpl extends ServiceImpl implements DmSygdxqService { + + @Override + @Transactional + public void saveXzList(List list,String username,String day){ + list.forEach(l->{ + DmSygdxq sygdxq=this.getOne(new QueryWrapper() + .eq("dc_ch",l.getDcCh()) + .eq("dc_pl",l.getDcPl()) + .eq("DC_FD",l.getDcFd()) + ); + if (ObjUtil.isNotEmpty(sygdxq)){ + l.setDrcs(sygdxq.getDrcs()+1); + l.setXzglxqOld(sygdxq.getXzglxq()); + l.setDrr(username); + l.setDrrq(day); + //状态 2拖期 1提前 + if (l.getXzglxq().compareTo(sygdxq.getXzglxq())>0){ + l.setXqzt("2"); + } + if (l.getXzglxq().compareTo(sygdxq.getXzglxq())<0){ + l.setXqzt("1"); + } + this.update(new UpdateWrapper() + .set("xzglxq",l.getXzglxq()) + .set("xzglxq_old",l.getXzglxqOld()) + .set("xdb",l.getXdb()) + .set("xskj",l.getXskj()) + .set("xpt",l.getXpt()) + .set("xyw",l.getXyw()) + .set("xxc",l.getXxc()) + .set("xtxc",l.getXtxc()) + .set("drcs",l.getDrcs()) + .set("xqzt",l.getXqzt()) + .set("drrq",l.getDrrq()) + .set("drr",l.getDrr()) + .eq("dc_ch",l.getDcCh()) + .eq("dc_pl",l.getDcPl()) + .eq("DC_FD",l.getDcFd()) + ); + }else { + l.setDrr(username); + l.setDrrq(day); + this.save(l); + } + + + }); + } + + @Override + @Transactional + public void saveDzList(List list,String username,String day){ + list.forEach(l->{ + DmSygdxq sygdxq=this.getOne(new QueryWrapper() + .eq("dc_ch",l.getDcCh()) + .eq("dc_pl",l.getDcPl()) + .eq("DC_FD",l.getDcFd()) + ); + if (ObjUtil.isNotEmpty(sygdxq)){ + l.setDrr(username); + l.setDrrq(day); + this.update(new UpdateWrapper() + .set("dzglxq",l.getDzglxq()) + .set("dzglxq_old",sygdxq.getDzglxq()) + .set("dqb",l.getDqb()) + .set("dxc",l.getDxc()) + .set("dsj",l.getDsj()) + .set("ddb",l.getDdb()) + .set("drrq",l.getDrrq()) + .set("drr",l.getDrr()) + .eq("dc_ch",l.getDcCh()) + .eq("dc_pl",l.getDcPl()) + .eq("DC_FD",l.getDcFd()) + ); + }else { + l.setDrr(username); + l.setDrrq(day); + this.save(l); + } + }); + } +} + diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmYdjhServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmYdjhServiceImpl.java new file mode 100644 index 0000000..378b55a --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmYdjhServiceImpl.java @@ -0,0 +1,42 @@ +package com.dsic.gj_erp.service.jhgk.impl; + + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsic.gj_erp.bean.jhgk.DmQfxq; +import com.dsic.gj_erp.bean.jhgk.DmSygdMx; +import com.dsic.gj_erp.bean.jhgk.DmYdjh; +import com.dsic.gj_erp.mapper.jhgk.DmYdjhMapper; +import com.dsic.gj_erp.service.jhgk.DmQfxqService; +import com.dsic.gj_erp.service.jhgk.DmSygdMxService; +import com.dsic.gj_erp.service.jhgk.DmYdjhService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author xn + * @since 2023-11-09 + */ +@Service +public class DmYdjhServiceImpl extends ServiceImpl implements DmYdjhService { + + private DmQfxqService qfxqService; + private DmSygdMxService sygdMxService; + @Override + public void tjydjh(){ + //根据 前方需求 三月滚动 排产 + //查看前方需求是否已导入 + List qfxqList= qfxqService.list(new QueryWrapper().eq("substring(db,0,8) ", DateUtil.format(DateUtil.nextMonth(),"yyyy/MM"))); + + sygdMxService.list(new QueryWrapper().eq("","")); + } + + +} diff --git a/src/main/resources/mappers/jhgk/DmSygdxqMapper.xml b/src/main/resources/mappers/jhgk/DmSygdxqMapper.xml new file mode 100644 index 0000000..5307a26 --- /dev/null +++ b/src/main/resources/mappers/jhgk/DmSygdxqMapper.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/mappers/jhgk/DmYdjhMapper.xml b/src/main/resources/mappers/jhgk/DmYdjhMapper.xml new file mode 100644 index 0000000..da9f4d3 --- /dev/null +++ b/src/main/resources/mappers/jhgk/DmYdjhMapper.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +