Merge remote-tracking branch 'origin/master'

master
董哲奇 1 year ago
commit cb15bc0cb3

@ -0,0 +1,48 @@
package com.dsic.gj_erp.bean.jcsj;
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;
/**
* <p>
*
* </p>
*
* @author xn
* @since 2024-04-26
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="DmTltpdf对象", description="")
public class DmTltpdf implements Serializable {
private static final long serialVersionUID=1L;
@ApiModelProperty(value = "船号")
private String dcCh;
@ApiModelProperty(value = "图号(不是图纸编号)")
private String th;
@ApiModelProperty(value = "页码")
private String pageNum;
@ApiModelProperty(value = "行数")
@TableField("rows")
private String rows;
@ApiModelProperty(value = "内容")
private String content;
@TableId(value = "id", type = IdType.ASSIGN_UUID)
private String id;
}

@ -63,4 +63,9 @@ public class EmGcrl implements Serializable {
@ApiModelProperty(value = "排班:1:早;2:晚班;3:双班") @ApiModelProperty(value = "排班:1:早;2:晚班;3:双班")
private String pb; private String pb;
private Double bbgs=7.0;
private Double ybgs=7.0;
} }

@ -0,0 +1,134 @@
package com.dsic.gj_erp.bean.jcsj;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.dsic.gj_erp.bean.jhgk.DmSygdxq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author xn
* @since 2023-09-15
*/
@Data
public class EmGcrlDto {
//工厂日历
private String gl;
private Double bbgs;
private Double ybgs;
//设备信息
private String gx;
private String sbbh;
private String sbmc;
private Double degsYb;
private Double degs;
//三月滚动计划明细
@ApiModelProperty(value = "上料日期")
private String slrq;
private String slsb;
@ApiModelProperty(value = "抛丸日期")
private String pwrq;
@ApiModelProperty(value = "抛丸设备")
private String pwsb;
private String llrq;
private String llsb;
@ApiModelProperty(value = "划线设备")
private String hxsb;
@ApiModelProperty(value = "划线日期")
private String hxrq;
@ApiModelProperty(value = "切割设备")
private String qgsb;
@ApiModelProperty(value = "切割日期")
private String qgrq;
private String pkrq;
private String pksb;
private String dmrq;
private String dmsb;
private String qjgrq;
private String qsb;
private String slgxbm;
private String pwgxbm;
private String llgxbm;
private String hxgxbm;
private String qggxbm;
private String pkgxbm;
private String dmgxbm;
private String qjggxbm;
//前方分段钢料滚动需求
private String dcFd;
private String xzglxq;
private String dzglxq;
private String dcCh;
private String dcPl;
//bom
private String lqlb;
private String kw;
private String zl;
private String tzbh;
private String wpgg;
private String wpcz;
private BigDecimal ljsl;
private String lc;
@ApiModelProperty(value = "备料")
private BigDecimal blgs;
@ApiModelProperty(value = "抛丸")
private BigDecimal pwgs;
@ApiModelProperty(value = "理料")
private BigDecimal llgs;
@ApiModelProperty(value = "划线")
private BigDecimal hxgs;
@ApiModelProperty(value = "切割")
private BigDecimal qggs;
@ApiModelProperty(value = "坡口")
private BigDecimal pkgs;
@ApiModelProperty(value = "曲")
private BigDecimal qgs;
@ApiModelProperty(value = "打磨")
private BigDecimal dmgs;
@ApiModelProperty(value = "装配")
private BigDecimal zpgs;
}

@ -193,6 +193,16 @@ public class DmSygdMx implements Serializable {
private String pksb; private String pksb;
private String dmsb; private String dmsb;
private String qsb; private String qsb;
private String slgxbm;
private String pwgxbm;
private String llgxbm;
private String hxgxbm;
private String qggxbm;
private String pkgxbm;
private String dmgxbm;
private String qjggxbm;
} }

@ -55,4 +55,175 @@ public class CutPlan extends Model<CutPlan> {
public String getQgjssj(){ public String getQgjssj(){
return StrUtil.isNotEmpty(this.nestTumikomiTime)?this.nestTumikomiDate+" "+this.nestTumikomiTime:""; return StrUtil.isNotEmpty(this.nestTumikomiTime)?this.nestTumikomiDate+" "+this.nestTumikomiTime:"";
} }
private String nestExtC09;
private Integer nestMarkTime;
private String nestBozaiName;
private Double nestExtD03;
private Double nestExtD09;
private String nestNameSub3;
private Integer nestKapWorkNo;
private String nestExtC06;
private Double nestExtD06;
private Double nestSjyuryou;
private Double nestCutLengs;
private Integer nestExtI07;
private String nestNouki2Time;
private Integer nestPartSu;
private Integer nestPalletNo;
private Integer nestMoji;
private String nestExtC00;
private Double nestExtD00;
private String nestYoteiNo;
private Double nestBudomari;
private Double nestSizeMy;
private Double nestTapeLengs;
private String nestExtC01;
private String nestKanryoDate;
private Double nestExtD01;
private Double nestPjyuryou;
private Integer nestExtI08;
private Double nestExtD04;
private String weekYoteiDate;
private Integer nestScantlingNo;
private Integer nestExtI05;
private Integer nestJEtcTime;
private String nestMachName;
private String nestNouki1Time;
private String nestManufacturer;
private Integer nestJKakouTime;
private Integer nestExtI02;
private Double nestMarkLengs;
private Integer nestHyoNo;
private String nestKousinDate;
private String nestYoteiDate;
private Integer nestExtI03;
private String nestModelName;
private Integer nestDrill;
private String nestHyoName;
private String nestYoteiTime;
private Integer nestExtI09;
private Integer nestCuttingtableNo;
private Double nestSizeMx;
private Integer nestJDandoriTime;
private Integer nestExtI06;
private String nestNouki2Date;
private String nestSakuseiDate;
private Integer nestKakouTime;
private Integer nestJCutTime;
private String nestExtC07;
private String nestNcNo;
private String nestKousinTime;
private Double nestExtD07;
private Integer nestBozaiIkei;
private Integer nestExtI00;
private Integer nestEtcTime;
private Integer nestZaiNo;
private Integer dataHi;
private Integer nestDandoriTime;
private String nestOaTransfer;
private Integer nestExtI01;
private String nestZaiName;
private Integer dataLow;
private String nestSakuseiTime;
private Integer nestJMarkTime;
private String nestExtC08;
private Integer nestExtI04;
private String nestNcName;
private Integer nestMachNo;
private String nestNouki1Date;
private Double nestExtD08;
private Integer nestItaTorisu;
private String nestNameSub2;
private Double nestKjyuryou;
private Double nestExtD05;
private Integer nestCutTime;
private String nestKanryoTime;
private Double nestExtD02;
} }

@ -15,8 +15,6 @@ import lombok.Setter;
@TableName("iot_m_machine") @TableName("iot_m_machine")
public class Device extends Model<Device> { public class Device extends Model<Device> {
@TableId(type = IdType.AUTO)
private Integer id;
private String machineId;//设备id private String machineId;//设备id
private String machineName;//设备名称 private String machineName;//设备名称
@ -26,4 +24,47 @@ public class Device extends Model<Device> {
private String machinemodelName;//设备型号 private String machinemodelName;//设备型号
private String torchType;//割枪类型 private String torchType;//割枪类型
private String updateDatetime;
@TableId(value = "idd", type = IdType.AUTO)
private Integer idd;
private Integer orders;
private String deliveryDate;
private Double positionX;
private String createDatetime;
private String maintenanceDate;
private Integer id;
private String loginname;
private Double customerId;
private String viewFlag;
private Double positionY;
private Double tanto1Id;
private String isDelete;
private String updateUser;
private String online;
private Double plantId;
private Integer floorId;
private Double tanto2Id;
private String createUser;
private String ncdataPngPath;
} }

@ -14,8 +14,6 @@ import lombok.Setter;
@Setter @Setter
@TableName("iot_m_employee") @TableName("iot_m_employee")
public class XiaochiUser extends Model<XiaochiUser> { public class XiaochiUser extends Model<XiaochiUser> {
@TableId(type = IdType.AUTO)
private Integer id;
private String employeeNumber; private String employeeNumber;
@ -25,4 +23,35 @@ public class XiaochiUser extends Model<XiaochiUser> {
private String position; private String position;
private static final long serialVersionUID=1L;
@TableId(value = "idd", type = IdType.AUTO)
private Integer idd;
private Integer accessPermission;
private String updateUser;
private Integer id;
private String createUser;
private String phoneNo;
private String updateDatetime;
private String createDatetime;
private String expireDate;
private String password;
private String email;
private String isDelete;
} }

@ -5,20 +5,26 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dsic.gj_erp.annotation.AuthFunction; import com.dsic.gj_erp.annotation.AuthFunction;
import com.dsic.gj_erp.bean.ResultBean; import com.dsic.gj_erp.bean.ResultBean;
import com.dsic.gj_erp.bean.jcsj.DmBom; import com.dsic.gj_erp.bean.jcsj.DmBom;
import com.dsic.gj_erp.bean.jcsj.DmTltpdf;
import com.dsic.gj_erp.bean.jcsj.excel.PlExcel; import com.dsic.gj_erp.bean.jcsj.excel.PlExcel;
import com.dsic.gj_erp.bean.jcsj.vo.BomVO; import com.dsic.gj_erp.bean.jcsj.vo.BomVO;
import com.dsic.gj_erp.exception.CustomException; import com.dsic.gj_erp.exception.CustomException;
import com.dsic.gj_erp.service.jcsj.DmBomService; import com.dsic.gj_erp.service.jcsj.DmBomService;
import com.dsic.gj_erp.service.jcsj.DmTltpdfService;
import com.dsic.gj_erp.service.jcsj.impl.BomUploadServiceImpl; import com.dsic.gj_erp.service.jcsj.impl.BomUploadServiceImpl;
import com.dsic.gj_erp.service.sy.SYService; import com.dsic.gj_erp.service.sy.SYService;
import io.swagger.annotations.Authorization;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -42,7 +48,51 @@ public class DmBomController {
BomUploadServiceImpl bomUploadService; BomUploadServiceImpl bomUploadService;
@Autowired @Autowired
SYService syService; SYService syService;
@Autowired
DmTltpdfService tltpdfService;
@PostMapping("/uploadPDF")
@Authorization("")
@ResponseBody
public ResultBean uploadPDF(@RequestParam("file") MultipartFile file)throws IOException {
// String pdfFilePath = "E:/runpeng/1润芃工作日志/第21个月/第3周/钢加项目资料/小池/B046HC103HN第046批量数控套料图2023-05-11.pdf"; // PDF文件路径
PDDocument document = PDDocument.load(file.getInputStream());
int pageNum = document.getNumberOfPages();
//
PDFTextStripper stripper = new PDFTextStripper();
stripper .setSortByPosition(true); //设置为true 则按照行进行读取默认是false
// // 指定页面读取内容
// stripper.setStartPage(12); // 设置起始页面这里设置成0就表示读取第一个页面
// stripper.setEndPage(12); // 设置结束页面这里设置成0就表示读取第一个页面
// // 3、获取指定页面的文本内容
stripper.setStartPage(2);
stripper.setEndPage(2);
String[] text = stripper.getText(document).split("\r\n")[2].split(" ");
String dcCh=text[1];
String th=text[10];
List<DmTltpdf> list=new ArrayList<>();
for (int i = 1; i <= pageNum; i++) {
stripper.setStartPage(i);
stripper.setEndPage(i);
String s = stripper.getText(document);
String[] a=s.split("\r\n");
// System.out.println("第 " + i +"/"+pageNum+ " 页 :" );
for (int j=0;j<a.length;j++){
DmTltpdf tltpdf=new DmTltpdf();
tltpdf.setDcCh(dcCh);
tltpdf.setTh(th);
tltpdf.setPageNum(i +"/"+pageNum);
tltpdf.setRows((j+1) +"/"+a.length);
tltpdf.setContent(a[j]);
list.add(tltpdf);
// System.out.println("第 " + (j+1) +"/"+a.length+ " 行 :");
// System.out.println(a[j]);
}
}
tltpdfService.saveBatch(list);
document.close();
return new ResultBean();
}
@PostMapping("/getListBom") @PostMapping("/getListBom")
public ResultBean getListBom(HttpServletRequest req, @RequestBody Map map) throws CustomException { public ResultBean getListBom(HttpServletRequest req, @RequestBody Map map) throws CustomException {
List<BomVO> listBom = dmBomService.getListBom(req,map); List<BomVO> listBom = dmBomService.getListBom(req,map);

@ -106,6 +106,7 @@ public class DmSygdMxController {
map.put("xbList",service.getXBList(list,year,begin,end)); map.put("xbList",service.getXBList(list,year,begin,end));
map.put("plList",service.getPl(list.get(0).getJssj(),list.get(list.size() - 1).getJssj())); map.put("plList",service.getPl(list.get(0).getJssj(),list.get(list.size() - 1).getJssj()));
map.put("kwList",service.getKwList(list,list.get(0).getJssj(),list.get(list.size() - 1).getJssj())); map.put("kwList",service.getKwList(list,list.get(0).getJssj(),list.get(list.size() - 1).getJssj()));
map.put("gcrlList",service.getGcrlList(list,list.get(0).getJssj(),list.get(list.size() - 1).getJssj()));
// map.put("tzList",service.getTZList(list)); // map.put("tzList",service.getTZList(list));
// map.put("dhList",service.getDhList(list)); // map.put("dhList",service.getDhList(list));
return new ResultBean(map); return new ResultBean(map);

@ -119,7 +119,6 @@ public class ComputePlan {
} }
} }
}); });
} }
/** /**
@ -265,13 +264,13 @@ public class ComputePlan {
capacity.setCapacity(degs * 7); capacity.setCapacity(degs * 7);
} }
if ("3".equals(gcrl.getPb())) { if ("3".equals(gcrl.getPb())) {
capacity.setCapacity(degs * 7 + degsYb * 7); capacity.setCapacity(degs * gcrl.getBbgs() + degsYb * gcrl.getYbgs());
} }
if ("1".equals(gcrl.getPb())) { if ("1".equals(gcrl.getPb())) {
capacity.setCapacity(degs * 7); capacity.setCapacity(degs * gcrl.getBbgs());
} }
if ("2".equals(gcrl.getPb())) { if ("2".equals(gcrl.getPb())) {
capacity.setCapacity(degsYb * 7); capacity.setCapacity(degsYb * gcrl.getYbgs());
} }
// } // }
// }); // });

@ -0,0 +1,17 @@
package com.dsic.gj_erp.mapper.jcsj;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsic.gj_erp.bean.jcsj.DmTltpdf;
/**
* <p>
* Mapper
* </p>
*
* @author xn
* @since 2024-04-26
*/
public interface DmTltpdfMapper extends BaseMapper<DmTltpdf> {
}

@ -2,8 +2,10 @@ package com.dsic.gj_erp.mapper.jhgk;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsic.gj_erp.bean.jcsj.EmGcrlDto;
import com.dsic.gj_erp.bean.jhgk.DmSygdMx; import com.dsic.gj_erp.bean.jhgk.DmSygdMx;
import com.dsic.gj_erp.bean.jhgk.DmSygdMxLj; import com.dsic.gj_erp.bean.jhgk.DmSygdMxLj;
import com.dsic.gj_erp.bean.jhgk.DmSygdxq;
import com.dsic.gj_erp.bean.jhgk.DmYdjhxf; import com.dsic.gj_erp.bean.jhgk.DmYdjhxf;
import com.dsic.gj_erp.bean.jhgk.dto.Dhdto; import com.dsic.gj_erp.bean.jhgk.dto.Dhdto;
import com.dsic.gj_erp.bean.jhgk.dto.Kwdto; import com.dsic.gj_erp.bean.jhgk.dto.Kwdto;
@ -35,4 +37,7 @@ public interface DmSygdMxMapper extends BaseMapper<DmSygdMx> {
List<Object> cgjhdhqk(Map<String,Object> map); List<Object> cgjhdhqk(Map<String,Object> map);
List<DmYdjhxf> tqSygd1(@Param("begin") String begin,@Param("end")String end); List<DmYdjhxf> tqSygd1(@Param("begin") String begin,@Param("end")String end);
List<DmSygdxq> getGlgdxq(DmSygdMx sygdMx);
List<EmGcrlDto> getMxMap(@Param("begin") String begin, @Param("end")String end);
} }

@ -0,0 +1,17 @@
package com.dsic.gj_erp.service.jcsj;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsic.gj_erp.bean.jcsj.DmTltpdf;
/**
* <p>
*
* </p>
*
* @author xn
* @since 2024-04-26
*/
public interface DmTltpdfService extends IService<DmTltpdf> {
}

@ -0,0 +1,21 @@
package com.dsic.gj_erp.service.jcsj.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsic.gj_erp.bean.jcsj.DmTltpdf;
import com.dsic.gj_erp.mapper.jcsj.DmTltpdfMapper;
import com.dsic.gj_erp.service.jcsj.DmTltpdfService;
import org.springframework.stereotype.Service;
/**
* <p>
*
* </p>
*
* @author xn
* @since 2024-04-26
*/
@Service
public class DmTltpdfServiceImpl extends ServiceImpl<DmTltpdfMapper, DmTltpdf> implements DmTltpdfService {
}

@ -23,6 +23,7 @@ public interface DmSygdMxService extends IService<DmSygdMx> {
ResultBean sygdPC(); ResultBean sygdPC();
// List<DmSygdMx> saveByDcch(HashMap<String, List<Object>> map); // List<DmSygdMx> saveByDcch(HashMap<String, List<Object>> map);
List<Kwdto> getKwList(List<DmSygdMx> list,String begin,String end); List<Kwdto> getKwList(List<DmSygdMx> list,String begin,String end);
List<Kwdto> getGcrlList(List<DmSygdMx> list,String begin,String end);
List<Xbjhdto> getXBList(List<DmSygdMx> list,String year,String begin,String end); List<Xbjhdto> getXBList(List<DmSygdMx> list,String year,String begin,String end);
List<Pldto> getPl(String begin,String end); List<Pldto> getPl(String begin,String end);
List<Tzjhdto> getTZList(List<DmSygdMx> list); List<Tzjhdto> getTZList(List<DmSygdMx> list);

@ -6,17 +6,19 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsic.gj_erp.bean.ResultBean; import com.dsic.gj_erp.bean.ResultBean;
import com.dsic.gj_erp.bean.jcsj.DmBom; import com.dsic.gj_erp.bean.jcsj.*;
import com.dsic.gj_erp.bean.jcsj.DmCzplpNew;
import com.dsic.gj_erp.bean.jcsj.EmGcrl;
import com.dsic.gj_erp.bean.jcsj.EmSbcnp;
import com.dsic.gj_erp.bean.jcsj.excel.PlExcel; import com.dsic.gj_erp.bean.jcsj.excel.PlExcel;
import com.dsic.gj_erp.bean.jhgk.*; import com.dsic.gj_erp.bean.jhgk.*;
import com.dsic.gj_erp.bean.jhgk.dto.*; import com.dsic.gj_erp.bean.jhgk.dto.*;
import com.dsic.gj_erp.bean.sy.Dm_zhbmp;
import com.dsic.gj_erp.dao.sy.Dm_zhbmpRepository;
import com.dsic.gj_erp.handler.ComputePlan; import com.dsic.gj_erp.handler.ComputePlan;
import com.dsic.gj_erp.handler.dto.RealCapacity; import com.dsic.gj_erp.handler.dto.RealCapacity;
import com.dsic.gj_erp.mapper.jcsj.DmBomMapper; import com.dsic.gj_erp.mapper.jcsj.DmBomMapper;
@ -31,6 +33,7 @@ import com.dsic.gj_erp.service.jhgk.DmTzjhService;
import com.dsic.gj_erp.service.jhgk.DmXbjhService; import com.dsic.gj_erp.service.jhgk.DmXbjhService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
@ -66,7 +69,115 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
private DmSygdMxLjServiceImpl ljService; private DmSygdMxLjServiceImpl ljService;
@Resource @Resource
private EmSbcnpService sbcnpService; private EmSbcnpService sbcnpService;
@Autowired
Dm_zhbmpRepository dm_zhbmpRepository;
public Map<String,List<EmGcrlDto>> getMxMap(String begin,String end){
List<EmGcrlDto> list=baseMapper.getMxMap(begin,end);
//1.页面 arr=[日期+工序+设备,...]
//2.后端1 日期范围查询 所有加工内容 按日期+工序+设备 分组
//上料
Map<String,List<EmGcrlDto>> mx= list.stream().collect(Collectors.groupingBy(l->l.getSlrq()+l.getSlgxbm()+l.getSlsb()));
//抛丸
Map<String,List<EmGcrlDto>> mxPwMap= list.stream().collect(Collectors.groupingBy(l->l.getPwrq()+l.getPwgxbm()+l.getPwsb()));
//划线
Map<String,List<EmGcrlDto>> mxHxMap= list.stream().collect(Collectors.groupingBy(l->l.getHxrq()+l.getHxgxbm()+l.getHxsb()));
//切割
Map<String,List<EmGcrlDto>> mxQgMap= list.stream().collect(Collectors.groupingBy(l->l.getQgrq()+l.getQggxbm()+l.getQgsb()));
//坡口
Map<String,List<EmGcrlDto>> mxPkMap= list.stream().collect(Collectors.groupingBy(l->l.getPkrq()+l.getPkgxbm()+l.getPksb()));
//打磨
Map<String,List<EmGcrlDto>> mxDmMap= list.stream().collect(Collectors.groupingBy(l->l.getDmrq()+l.getDmgxbm()+l.getDmsb()));
//曲
Map<String,List<EmGcrlDto>> mxQMap= list.stream().collect(Collectors.groupingBy(l->l.getQjgrq()+l.getQjggxbm()+l.getQsb()));
mx.putAll(mxPwMap);
mx.putAll(mxHxMap);
mx.putAll(mxQgMap);
mx.putAll(mxPkMap);
mx.putAll(mxDmMap);
mx.putAll(mxQMap);
//循环第二布查询结果 取bom
//3.后端 日期范围查询所有的需求
//4.页面 按照后端1提取list 循环匹配 需求 同时包含bom
//把第4步的结果赋值到table
return mx;
}
@Override
public List<Kwdto> getGcrlList(List<DmSygdMx> list,String begin,String end) {
// 1.根据list汇总
Map<String,List<EmGcrlDto>> listMap= getMxMap(begin,end);
//三月滚动明细 船号 批量 分段 图纸编号 工序 工序加工日期
//工厂日历 -> 工序+设备 ->三月滚动明细 - 分段钢料滚动需求
//工序
ComputePlan c=ComputePlan.instance();
c.computeRealCapacity(DateUtil.parse(begin,"yyyy/MM/dd"), DateUtil.parse(end,"yyyy/MM/dd"));
JSONObject realDeviceList=c.getRealDeviceList();
List<EmGcrl> gcrlList=c.getGcrlList();
List<Dm_zhbmp> pcgx = dm_zhbmpRepository.findByBMLB("PCGX");
gcrlList.forEach(gcrl->{
String jgrq=gcrl.getGl();
Map<String,List<EmSbjbb>> map=new HashMap<>();
//日期+设备list工序
if (realDeviceList.size()>1 && ObjectUtil.isNotEmpty(realDeviceList.getJSONArray(gcrl.getGl()))) {
//根据工序分组
JSONArray data =realDeviceList.getJSONArray(gcrl.getGl());
String js = JSONObject.toJSONString(data, SerializerFeature.WriteClassName);
List<EmSbjbb> list1=JSONObject.parseArray(js, EmSbjbb.class);
map=list1.stream().collect(Collectors.groupingBy(EmSbjbb::getGx));
}
//1.页面 arr=[日期+工序+设备,...]
//2.后端1 日期范围查询所有加工内容 按日期+工序+设备
//循环第二布查询结果 取bom
//3.后端 日期范围查询所有的需求
//4.页面 按照后端1提取list 循环匹配 需求 同时包含bom
//把第4步的结果赋值到table
//日期 工序
for (Dm_zhbmp dmZhbmp : pcgx) {
String gx=dmZhbmp.getBM();
if (ObjectUtil.isNotEmpty(map)
&&ObjectUtil.isNotEmpty(map.get(gx))
&&map.get(gx).size()>0){
List<EmSbjbb> sbList= map.get(gx);
for (EmSbjbb emSbjbb : sbList) {
String sbbh=emSbjbb.getSbbh();
if (ObjectUtil.isNotEmpty(listMap.get(jgrq+gx+sbbh))&&listMap.get(jgrq+gx+sbbh).size()>0){
List<EmGcrlDto> l= listMap.get(jgrq+gx+sbbh);
l.stream().collect(Collectors.groupingBy(dto->dto.getDcCh()+dto.getDcPl()+dto.getDcFd()));
}
}
}
}
});
return new ArrayList<>();
}
EmGcrlDto getFdglxqs(String gx,DmSygdMx mx,EmGcrl gcrl,EmSbjbb emSbjbb){
List<DmSygdxq> dmSygdxqs= baseMapper.getGlgdxq(mx);
// 新增一个对象
EmGcrlDto dto=new EmGcrlDto();
for (DmSygdxq dmSygdxq : dmSygdxqs) {
dto=BeanUtil.copyProperties(dmSygdxq,EmGcrlDto.class);
dto.setGl(gcrl.getGl());
dto.setBbgs(gcrl.getBbgs());
dto.setYbgs(gcrl.getYbgs());
dto.setGx(gx);
dto.setSbbh(emSbjbb.getSbbh());
dto.setSbmc(emSbjbb.getSbmc());
dto.setDegsYb(emSbjbb.getDegsYb());
dto.setDegs(emSbjbb.getDegs());
// dto.setBomList();
}
return dto;
}
/** /**
* *
*/ */
@ -110,6 +221,7 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
//todo 排产 //todo 排产
ypc(mxList); ypc(mxList);
this.saveBatch(mxList); this.saveBatch(mxList);
baseMapper.setParent(begin, end); baseMapper.setParent(begin, end);
List<DmYdjhxf> list= tqSygd1(begin,end); List<DmYdjhxf> list= tqSygd1(begin,end);
@ -122,15 +234,15 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
/** /**
* *
* *
* @param list * @param list
*/ */
public void ypc(List<DmSygdMx> list) { public void ypc(List<DmSygdMx> list) {
// Map<String, List<DmSygdMx>> mxMap = list.stream().filter(l->StrUtil.isNotEmpty(l.getTzbh())).collect(Collectors.groupingBy(l -> l.getKw() + l.getZl())); //可用设备/产能 根据日期、跨位+工序 分组
ComputePlan c=ComputePlan.instance(); ComputePlan c=ComputePlan.instance();
c.computeRealCapacity(DateUtil.beginOfMonth(DateUtil.date()), DateUtil.endOfMonth(DateUtil.date())); c.computeRealCapacity(DateUtil.beginOfMonth(DateUtil.date()), DateUtil.endOfMonth(DateUtil.date()));
Map<String,Map<String,List<RealCapacity>>> rel=c.getRealCapacityMap(); Map<String,Map<String,List<RealCapacity>>> rel=c.getRealCapacityMap();
//加工工序list //产能
List<EmSbcnp> sbcnp =c.getSbcnList(); List<EmSbcnp> sbcnp =c.getSbcnList();
Map<String, List<EmSbcnp>> cnMap = sbcnp.stream().collect(Collectors.groupingBy(l -> l.getTzbh() + l.getZl())); Map<String, List<EmSbcnp>> cnMap = sbcnp.stream().collect(Collectors.groupingBy(l -> l.getTzbh() + l.getZl()));
@ -147,11 +259,11 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
* *
* @param rel * @param rel
* @param l * @param l
* @param list * @param list
*/ */
public void jggx( Map<String,Map<String,List<RealCapacity>>> rel,DmSygdMx l,List<EmSbcnp> list){ public void jggx( Map<String,Map<String,List<RealCapacity>>> rel,DmSygdMx l,List<EmSbcnp> list){
String date=""; String date="";
Map<String,String> map=new TreeMap<>(); Map<String,String> map;
for (EmSbcnp cn : list) { for (EmSbcnp cn : list) {
//上料 //上料
if (cn.getGx().equals("19")) { if (cn.getGx().equals("19")) {
@ -159,6 +271,7 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
date=map.get("jgsj"); date=map.get("jgsj");
l.setSlrq(date); l.setSlrq(date);
l.setSlsb(map.get("sbbh")); l.setSlsb(map.get("sbbh"));
l.setSlgxbm("19");
} }
//抛丸 //抛丸
if (cn.getGx().equals("20")) { if (cn.getGx().equals("20")) {
@ -166,6 +279,7 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
date=map.get("jgsj"); date=map.get("jgsj");
l.setPwrq(date); l.setPwrq(date);
l.setPwsb(map.get("sbbh")); l.setPwsb(map.get("sbbh"));
l.setPwgxbm("20");
} }
//理料 //理料
if (cn.getGx().equals("21")) { if (cn.getGx().equals("21")) {
@ -173,6 +287,7 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
date=map.get("jgsj"); date=map.get("jgsj");
l.setLlrq(date); l.setLlrq(date);
l.setLlsb(map.get("sbbh")); l.setLlsb(map.get("sbbh"));
l.setLlgxbm("21");
} }
// 划线 // 划线
if ("01,02".indexOf(cn.getGx()) > -1 && l.getHxcd()>0) { if ("01,02".indexOf(cn.getGx()) > -1 && l.getHxcd()>0) {
@ -180,13 +295,17 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
date=map.get("jgsj"); date=map.get("jgsj");
l.setHxrq(date); l.setHxrq(date);
l.setHxsb(map.get("sbbh")); l.setHxsb(map.get("sbbh"));
l.setHxgxbm(cn.getGx());
} }
//切割 //切割
if ("03,04,05,06,07".indexOf(cn.getGx()) > -1 && l.getQgcd()>0) { if ("03,04,05,06,07".indexOf(cn.getGx()) > -1 && l.getQgcd()>0) {
// .
date=StrUtil.isEmpty(date)?"": DateUtil.offsetDay(DateUtil.parse(date),-1).toString("yyyy/MM/dd");
map=xhcn(rel,cn.getKw(),cn.getGx(),1, date); map=xhcn(rel,cn.getKw(),cn.getGx(),1, date);
date=map.get("jgsj"); date=map.get("jgsj");
l.setQgrq(date); l.setQgrq(date);
l.setQgsb(map.get("sbbh")); l.setQgsb(map.get("sbbh"));
l.setQggxbm(cn.getGx());
} }
// 坡口 // 坡口
if (ObjectUtil.isNotEmpty(l.getPkcd()) && ("08,10".indexOf(cn.getGx()) > 0)) { if (ObjectUtil.isNotEmpty(l.getPkcd()) && ("08,10".indexOf(cn.getGx()) > 0)) {
@ -194,6 +313,7 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
date=map.get("jgsj"); date=map.get("jgsj");
l.setPkrq(date); l.setPkrq(date);
l.setPksb(map.get("sbbh")); l.setPksb(map.get("sbbh"));
l.setPkgxbm(cn.getGx());
} }
// 打磨 // 打磨
if (ObjectUtil.isNotEmpty(l.getDmcd()) && ("16,13".indexOf(cn.getGx()) > 0)) { if (ObjectUtil.isNotEmpty(l.getDmcd()) && ("16,13".indexOf(cn.getGx()) > 0)) {
@ -201,6 +321,7 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
date=map.get("jgsj"); date=map.get("jgsj");
l.setDmrq(date); l.setDmrq(date);
l.setDmsb(map.get("sbbh")); l.setDmsb(map.get("sbbh"));
l.setDmgxbm(cn.getGx());
} }
// 曲 (个) // 曲 (个)
if (StrUtil.isNotEmpty(l.getQbs()) && cn.getGx().equals("18")) { if (StrUtil.isNotEmpty(l.getQbs()) && cn.getGx().equals("18")) {
@ -208,6 +329,7 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
date=map.get("jgsj"); date=map.get("jgsj");
l.setQjgrq(date); l.setQjgrq(date);
l.setQsb(map.get("sbbh")); l.setQsb(map.get("sbbh"));
l.setQjggxbm(cn.getGx());
} }
// 号料 手工切割 倒棱 切端头 自由边 预组 // 号料 手工切割 倒棱 切端头 自由边 预组
@ -230,7 +352,7 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
if (gzl==0)return map; if (gzl==0)return map;
String kwAndGx=kw+gx; String kwAndGx=kw+gx;
for (String date:rel.keySet()){ for (String date:rel.keySet()){
if (StrUtil.isEmpty(kssj)||date.compareTo(kssj)>=0){ if (StrUtil.isEmpty(kssj)||date.compareTo(kssj)>0){
//日期下 跨位+工序分组 //日期下 跨位+工序分组
Map<String,List<RealCapacity>> kwMap= rel.get(date); Map<String,List<RealCapacity>> kwMap= rel.get(date);
if (ObjectUtil.isEmpty(kwMap.get(kwAndGx)))break; if (ObjectUtil.isEmpty(kwMap.get(kwAndGx)))break;
@ -249,20 +371,8 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
rel.get(date).get(kwAndGx).set(index,l); rel.get(date).get(kwAndGx).set(index,l);
map.put("jgsj",l.getDate()); map.put("jgsj",l.getDate());
map.put("sbbh",l.getDeviceName()); map.put("sbbh",l.getDeviceName());
// break;
} }
} }
// for (String kwAndGx :kwMap.keySet()){
// if (kwAndGx.equals(kw+gx)){
// // 设备 list
// }
// }
// for (RealCapacity l:rel.get(date)){
// //设备 改为 跨位
// if (l.getKw().equals(kw)&&l.getGx().equals(gx)){
//
// }
// }
} }
} }

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsic.gj_erp.mapper.jcsj.DmTltpdfMapper">
<!-- 通用查询映射结果 -->
</mapper>

@ -4,6 +4,15 @@
<!-- 通用查询映射结果 --> <!-- 通用查询映射结果 -->
<select id="getGlgdxq" resultType="com.dsic.gj_erp.bean.jhgk.DmSygdxq">
SELECT DISTINCT dm_sygdxq.* from dm_sygdxq LEFT JOIN dm_bom
on dm_bom.dcch = dm_sygdxq.DC_CH
and dm_bom.pl = dm_sygdxq.DC_PL
and dm_bom.fd = dm_sygdxq.DC_FD
where
dm_bom.dcch=#{dcCh} and dm_bom.pl=#{dcPl} and dm_bom.tzbh=#{tzbh}
</select>
<select id="getDhsl" resultType="Dhdto" parameterType="Dhdto"> <select id="getDhsl" resultType="Dhdto" parameterType="Dhdto">
select ISNULL(im_crklsz.HDSL, 0) as hdsl, select ISNULL(im_crklsz.HDSL, 0) as hdsl,
MS_DDMXP.WPHD as wphd, MS_DDMXP.WPHD as wphd,
@ -153,7 +162,7 @@
tzbh, tzbh,
stuff((SELECT ' ' + c.FD stuff((SELECT ' ' + c.FD
FROM dm_sygd_mx_lj c FROM dm_sygd_mx_lj c
WHERE c.dcch = dm_sygd_mx_lj.dcch and c.PL = dm_sygd_mx_lj.PL WHERE c.dcch = dm_sygd_mx_lj.dcch and c.PL = dm_sygd_mx_lj.PL and c.tzbh = dm_sygd_mx_lj.tzbh
group by c.FD FOR xml path ( '') ), 1, 1, '' group by c.FD FOR xml path ( '') ), 1, 1, ''
) AS dc_fd, ) AS dc_fd,
MIN(xzglxq) as jssj, MIN(xzglxq) as jssj,
@ -511,4 +520,75 @@
GROUP BY dc_ch,dc_pl,dc_fd GROUP BY dc_ch,dc_pl,dc_fd
)aa ORDER BY aa.dc_ch,aa.dc_pl )aa ORDER BY aa.dc_ch,aa.dc_pl
</select> </select>
<select id="getMxMap" resultType="com.dsic.gj_erp.bean.jcsj.EmGcrlDto">
SELECT
dm_sygd_mx.slrq,
dm_sygd_mx.slsb,
dm_sygd_mx.pwrq,
dm_sygd_mx.pwsb,
dm_sygd_mx.llrq,
dm_sygd_mx.llsb,
dm_sygd_mx.hxrq,
dm_sygd_mx.hxsb,
dm_sygd_mx.qgrq,
dm_sygd_mx.qgsb,
dm_sygd_mx.pkrq,
dm_sygd_mx.pksb,
dm_sygd_mx.dmrq,
dm_sygd_mx.dmsb,
dm_sygd_mx.qjgrq,
dm_sygd_mx.qsb,
dm_sygd_mx.slgxbm,
dm_sygd_mx.pwgxbm,
dm_sygd_mx.llgxbm,
dm_sygd_mx.hxgxbm,
dm_sygd_mx.qggxbm,
dm_sygd_mx.pkgxbm,
dm_sygd_mx.dmgxbm,
dm_sygd_mx.qjggxbm,
dm_sygdxq.dc_ch,
dm_sygdxq.dc_pl,
dm_sygdxq.dc_fd,
dm_sygdxq.xzglxq,
dm_sygdxq.dzglxq,
dm_bom.lqlb,
dm_bom.kw,
dm_bom.zl,
dm_bom.tzbh,
dm_bom.wpgg,
dm_bom.wpcz,
dm_bom.ljsl,
dm_bom.blgs,
dm_bom.pwgs,
dm_bom.hxgs,
dm_bom.qggs,
dm_bom.pkgs,
dm_bom.qgs,
dm_bom.dmgs,
dm_bom.zpgs,
jglc.lc
from dm_sygd_mx,
(SELECT em_sbcnp.tzbh,stuff(
(SELECT ' ' +
(SELECT bmsm FROM DM_ZHBMP WHERE DM_ZHBMP.BMLB='PCGX' and bm=c.gx)
FROM em_sbcnp c
WHERE c.tzbh = em_sbcnp.tzbh
group by c.gx ,c.jgsx ORDER BY c.jgsx FOR xml path ( '') ), 1, 1, ''
) AS lc
from em_sbcnp GROUP BY em_sbcnp.tzbh ) jglc,
dm_sygdxq LEFT JOIN
dm_bom
on dm_bom.dcch = dm_sygdxq.DC_CH
and dm_bom.pl = dm_sygdxq.DC_PL
and dm_bom.fd = dm_sygdxq.DC_FD
where dm_sygd_mx.dc_ch=dm_bom.dcch
and dm_sygd_mx.dc_pl=dm_bom.pl
and dm_sygd_mx.tzbh=dm_bom.tzbh
and jglc.tzbh=dm_sygd_mx.kw
and dm_sygd_mx.jssj BETWEEN #{begin} and #{end}
ORDER BY dm_sygd_mx.dc_ch,
dm_sygd_mx.dc_pl,
dm_sygd_mx.dc_fd,dm_sygd_mx.tzbh
</select>
</mapper> </mapper>

Loading…
Cancel
Save