| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734 |
- package com.malk.diwei.service.impl;
- import cn.hutool.core.date.DateUtil;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.malk.diwei.entity.*;
- import com.malk.diwei.entity.Process;
- import com.malk.diwei.mapper.*;
- import com.malk.diwei.service.ProcessService;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.malk.server.aliwork.YDConf;
- import com.malk.server.aliwork.YDParam;
- import com.malk.server.common.McR;
- import com.malk.service.aliwork.YDClient;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.math.BigDecimal;
- import java.util.*;
- import java.util.stream.Collectors;
- /**
- * <p>
- * 服务实现类
- * </p>
- *
- * @author WZY
- * @since 2025-03-27
- */
- @Service
- public class ProcessServiceImpl extends ServiceImpl<ProcessMapper, Process> implements ProcessService {
- @Autowired
- private ProcessMapper processMapper;
- @Autowired
- private DepartmentMapper departmentMapper;
- @Autowired
- private EmployeeMapper employeeMapper;
- @Autowired
- private ProcessMaterialMapper processMaterialMapper;
- @Autowired
- private YDClient ydClient;
- @Autowired
- private BomMapper bomMapper;
- @Autowired
- private GoodsMapper goodsMapper;
- @Autowired
- private ColorMapper colorMapper;
- @Autowired
- private UnitMapper unitMapper;
- @Autowired
- private GoodsPartsMapper goodsPartsMapper;
- @Autowired
- private WorkProcStepMapper workProcStepMapper;
- @Autowired
- private ClientMapper clientMapper;
- @Autowired
- private ProcessItemMapper processItemMapper;
- @Autowired
- private ProcessONDetailMapper processONDetailMapper;
- private static final Map PROC_STEP_TYPE = new HashMap<>();
- static {
- PROC_STEP_TYPE.put(1, "厂内工序");
- PROC_STEP_TYPE.put(3, "裁剪工序");
- PROC_STEP_TYPE.put(4, "工艺委外工序");
- }
- @Override
- public McR syncProcess() {
- LambdaQueryWrapper<Process> processLambdaQueryWrapper = new LambdaQueryWrapper<>();
- processLambdaQueryWrapper.and(wrapper -> wrapper.ge(Process::getProcessUpdateDatetime, DateUtil.beginOfDay(DateUtil.yesterday()))
- .or()
- .ge(Process::getProcessCreateDatetime,DateUtil.beginOfDay(DateUtil.yesterday())))
- .eq(Process::getEntityObjKey,"ProductionSW")
- .eq(Process::getProcessStatus,2);
- /*processLambdaQueryWrapper.and(wrapper -> wrapper.ge(Process::getProcessUpdateDatetime, "2025-04-10 00:00:00")
- .or()
- .ge(Process::getProcessCreateDatetime,"2025-04-10 00:00:00"))
- .eq(Process::getEntityObjKey,"ProductionSW")
- .eq(Process::getProcessStatus,2);*/
- List<Process> processeList= processMapper.selectList(processLambdaQueryWrapper);
- for (Process process : processeList) {
- Map formData = new HashMap();
- formData.put("dateField_m8pi90ec", process.getProcessDate().getTime());//单据日期
- formData.put("textField_m8pi90ei",process.getProcessCode());//单据编号
- LambdaQueryWrapper<Bom> bomLambdaQueryWrapper = new LambdaQueryWrapper<>();
- bomLambdaQueryWrapper.eq(Bom::getBomID, process.getProcessBomID());
- Bom bom = bomMapper.selectOne(bomLambdaQueryWrapper);
- formData.put("textField_m8pi90ej",bom.getBomCode());//BOM
- formData.put("dateField_m8pi90eo",process.getProcessDeliveryDate().getTime());//交货日期
- if (process.getProcessDeptID() != null && process.getProcessDeptID() != 0){
- LambdaQueryWrapper<Department> departmentLambdaQueryWrapper = new LambdaQueryWrapper<>();
- departmentLambdaQueryWrapper.eq(Department::getDeptID, process.getProcessDeptID());
- Department department = departmentMapper.selectOne(departmentLambdaQueryWrapper);
- formData.put("textField_m8pi90eq",department.getDeptName());//部门
- }
- formData.put("textField_m8pi90es","总部");//组织机构
- formData.put("textField_m8pi90ex",process.getProcessSOClientName());//订单客户
- formData.put("textField_m8pi90ey",process.getProcessSOClientOrderCode());//客户订单号
- formData.put("textField_m8pi90ez",process.getProcessSOGoodsCode());//订单款号
- if (process.getProcessQCMerchandiserID() != null && process.getProcessQCMerchandiserID() != 0){
- LambdaQueryWrapper<Employee> employeeLambdaQueryWrapper = new LambdaQueryWrapper<>();
- employeeLambdaQueryWrapper.eq(Employee::getEmpID, process.getProcessQCMerchandiserID());
- Employee employee = employeeMapper.selectOne(employeeLambdaQueryWrapper);
- formData.put("textField_m8pi90f4",employee.getEmpName());//QC跟单
- }
- formData.put("textareaField_m8pi90f6",process.getProcessDescription());//备注
- //加工产品
- List<Map> list = processMapper.selectProductById(process.getProcessID());
- List<Map> collect = list.stream().map(map -> {
- Map map1 = new HashMap();
- map1.put("textField_m8pi90fa",map.get("GoodsCode"));//款号
- map1.put("textField_m8pi90fe",map.get("GoodsName"));//款名
- map1.put("textField_m8pi90fi",map.get("UnitName"));//单位
- map1.put("numberField_m8pi90fk",map.get("qty"));//加工数
- map1.put("textField_m8pi90fm",map.get("ProcessItemReferBillCode"));//引用单据编号
- return map1;
- }).collect(Collectors.toList());
- formData.put("tableField_m8pi90f9",collect);
- //加工件数
- int num1 = 0;
- for (Map map : list) {
- num1 += ((BigDecimal) map.get("qty")).intValue();
- }
- formData.put("numberField_m8pi90hw",num1);
- //横机/附件外发明细
- List<Map> processDetailList = processMapper.selectProcessONDetailByCode(process.getProcessCode());
- List<Map> processDetails = new ArrayList<>();
- for (Map processDetail : processDetailList) {
- Map map = new HashMap();
- map.put("textField_m8pi90fo",processDetail.get("ProcessCode"));//外发单号
- map.put("dateField_m8pi90fc",((Date)processDetail.get("ProcessDate")).getTime());//外发日期
- //状态
- int status = ((Short) processDetail.get("ProcessStatus")).intValue();
- switch (status){
- case 1:map.put("textField_m8pi90fp","草稿");break;
- case 2:map.put("textField_m8pi90fp","已提交");break;
- case 3:map.put("textField_m8pi90fp","已审核");break;
- default:break;
- }
- map.put("textField_m8pi90fq",processDetail.get("ClientName"));//加工厂
- map.put("textField_m8pi90fr",processDetail.get("GoodsPartsName"));//部件
- map.put("textField_m8pi90ft",processDetail.get("WPSProcStepName"));//工序
- map.put("textField_m8pi90fv",processDetail.get("GoodsNeedleType"));//针型
- map.put("textField_m8pi90fx",processDetail.get("GoodsMachineType"));//机型
- map.put("numberField_m8pi90fz",processDetail.get("WPSHadRecordQty"));//外发数
- processDetails.add(map);
- }
- formData.put("tableField_m8pi90fn",processDetails);
- //原料需求
- double num2 = 0.0;
- List<Map> processMaterialList = processMaterialMapper.selectProcessMaterialByGoodsProperty(process.getProcessID(),3);
- List<Map> processMaterials = new ArrayList<>();
- for (Map processMaterial : processMaterialList) {
- Map map = new HashMap();
- map.put("textField_m8pi90g3",processMaterial.get("GoodsPartsName"));//部件
- map.put("textField_m8pi90g5",processMaterial.get("GoodsCode"));//原料编码
- map.put("textField_m8pi90g7",processMaterial.get("GoodsName"));//原料名称
- map.put("textField_m8pi90g9",processMaterial.get("ColorName"));//颜色
- map.put("textField_m8pi90gb",processMaterial.get("ProcessMaterialColorVCode"));//色号
- map.put("textField_m8pi90gd",processMaterial.get("ProcessMaterialDes"));//批号
- map.put("textField_m8pi90gf",processMaterial.get("UnitName"));//单位
- map.put("numberField_m8pi90gh",processMaterial.get("ProcessMaterialQty"));//需求数
- num2 += Double.parseDouble(processMaterial.get("ProcessMaterialQty").toString());
- processMaterials.add(map);
- }
- formData.put("tableField_m8pi90g2",processMaterials);
- formData.put("numberField_m8pi90hy",num2);
- //辅料需求
- double num3 = 0.0;
- List<Map> processMaterialList2 = processMaterialMapper.selectProcessMaterialByGoodsProperty(process.getProcessID(),4);
- List<Map> processMaterials2 = new ArrayList<>();
- for (Map processMaterial : processMaterialList2) {
- Map map = new HashMap();
- map.put("textField_m8pi90h5",processMaterial.get("GoodsCode"));//辅料编码
- map.put("textField_m8pi90h6",processMaterial.get("GoodsName"));//辅料名称
- map.put("textField_m8pi90h7",processMaterial.get("ColorName"));//颜色
- map.put("textField_m8pi90h9",processMaterial.get("GoodsSpecs"));//规格
- map.put("textField_m8pi90ha",processMaterial.get("UnitName"));//单位
- map.put("numberField_m8pi90hb",processMaterial.get("ProcessMaterialQty"));//需求数
- map.put("numberField_m8pi90he",processMaterial.get("ProcessMaterialPickQty"));//已领数
- num3 += Double.parseDouble(processMaterial.get("ProcessMaterialQty").toString());
- processMaterials2.add(map);
- }
- formData.put("tableField_m8pi90hc",processMaterials2);
- formData.put("numberField_m8pi90hz",num3);
- //加工工艺
- LambdaQueryWrapper<WorkProcStep> workProcStepLambdaQueryWrapper = new LambdaQueryWrapper<>();
- workProcStepLambdaQueryWrapper.eq(WorkProcStep::getProcessID,process.getProcessID());
- List<WorkProcStep> workProcStepList = workProcStepMapper.selectList(workProcStepLambdaQueryWrapper);
- List<Map> workProcSteps = new ArrayList<>();
- for (WorkProcStep workProcStep : workProcStepList) {
- Map map = new HashMap();
- map.put("textField_m8pi90hh",workProcStep.getWPSProcStepName());//工序
- int wpsProcStepType = workProcStep.getWPSProcStepType();
- map.put("textField_m8pi90hj",PROC_STEP_TYPE.get(wpsProcStepType));//类型
- map.put("radioField_m8zkxbjm",workProcStep.getWPSProcStepIsFKM() == 1 ? "是" : "否");//横机
- int WPSConfirmQty = 0;
- if (wpsProcStepType == 4){
- WPSConfirmQty = workProcStep.getWPSConfirmQty();
- }else {
- WPSConfirmQty = ((BigDecimal)list.get(0).get("qty")).intValue();
- }
- int WPSHadRecordQty = workProcStep.getWPSHadRecordQty();
- int WPSUnRecordQty = WPSConfirmQty - WPSHadRecordQty;
- map.put("numberField_m8pi90hp",WPSConfirmQty);//应排
- map.put("numberField_m8pi90hq",WPSHadRecordQty);//已排
- map.put("numberField_m8pi90hr",WPSUnRecordQty);//未排
- Long wpsFactoryID = workProcStep.getWPSFactoryID();
- if (wpsFactoryID != null && wpsFactoryID != 0){
- LambdaQueryWrapper<Client> clientLambdaQueryWrapper = new LambdaQueryWrapper<>();
- clientLambdaQueryWrapper.eq(Client::getClientID,workProcStep.getWPSFactoryID());
- Client client = clientMapper.selectOne(clientLambdaQueryWrapper);
- if (client != null){
- map.put("textField_m8pi90hn",client.getClientName());//委外加工厂
- }
- }
- workProcSteps.add(map);
- }
- formData.put("tableField_m8pi90hg",workProcSteps);
- ydClient.operateData(YDParam.builder()
- .formUuid("FORM-233DD96AE9A342C69DFF33016370504ETO2Z")
- .searchCondition(JSONObject.toJSONString(Arrays.asList(YDConf.searchCondition_TextFiled("textField_m8pi90ei",process.getProcessCode(),"eq"))))
- .formDataJson(JSONObject.toJSONString(formData))
- .build(), YDConf.FORM_OPERATION.upsert);
- }
- return McR.success();
- }
- @Override
- public McR syncProcessOut() {
- LambdaQueryWrapper<Process> processLambdaQueryWrapper = new LambdaQueryWrapper<>();
- processLambdaQueryWrapper.and(wrapper -> wrapper.ge(Process::getProcessUpdateDatetime, DateUtil.beginOfDay(DateUtil.yesterday()))
- .or()
- .ge(Process::getProcessCreateDatetime,DateUtil.beginOfDay(DateUtil.yesterday())))
- .eq(Process::getEntityObjKey,"ProductionProcOutSideN")
- .eq(Process::getProcessOutSideType,3)
- .eq(Process::getProcessStatus,2);
- /*processLambdaQueryWrapper.and(wrapper -> wrapper.ge(Process::getProcessUpdateDatetime, "2025-04-10 00:00:00")
- .or()
- .ge(Process::getProcessCreateDatetime,"2025-04-10 00:00:00"))
- .eq(Process::getEntityObjKey,"ProductionProcOutSideN")
- .eq(Process::getProcessOutSideType,3)
- .eq(Process::getProcessStatus,2);*/
- List<Process> processeList= processMapper.selectList(processLambdaQueryWrapper);
- for (Process process : processeList) {
- Map formData = new HashMap();
- formData.put("dateField_m8pi90ec", process.getProcessDate().getTime());//单据日期
- formData.put("textField_m8pi90ei",process.getProcessCode());//单据编号
- formData.put("textField_m8pi90es","总部");//组织机构
- formData.put("dateField_m8pi90eo",process.getProcessDeliveryDate().getTime());//交货日期
- LambdaQueryWrapper<Client> clientLambdaQueryWrapper = new LambdaQueryWrapper<>();
- clientLambdaQueryWrapper.eq(Client::getClientID,process.getFactoryID());
- Client client = clientMapper.selectOne(clientLambdaQueryWrapper);
- if (Objects.nonNull(client)){
- formData.put("textField_m8pi90ex",client.getClientName());//加工厂
- }
- if (process.getProcessSalesmanID() != null && process.getProcessSalesmanID() != 0){
- LambdaQueryWrapper<Employee> employeeLambdaQueryWrapper = new LambdaQueryWrapper<>();
- employeeLambdaQueryWrapper.eq(Employee::getEmpID, process.getProcessSalesmanID());
- Employee employee = employeeMapper.selectOne(employeeLambdaQueryWrapper);
- formData.put("textField_m8pjta80",employee.getEmpName());//业务跟单
- }
- if (process.getProcessQCMerchandiserID() != null && process.getProcessQCMerchandiserID() != 0){
- LambdaQueryWrapper<Employee> employeeLambdaQueryWrapper = new LambdaQueryWrapper<>();
- employeeLambdaQueryWrapper.eq(Employee::getEmpID, process.getProcessQCMerchandiserID());
- Employee employee = employeeMapper.selectOne(employeeLambdaQueryWrapper);
- formData.put("textField_m8pi90f4",employee.getEmpName());//QC跟单
- }
- formData.put("textareaField_m8pi90f6",process.getProcessDescription());//备注
- //外发明细
- List<Map> outSideDetails = new ArrayList<>();
- List<Map> outSideDetailList = processMapper.selectOutSideDetails(process.getProcessID());
- int num = 0;
- for (Map outSideDetail : outSideDetailList) {
- Map map = new HashMap();
- map.put("textField_m8pjta82",outSideDetail.get("GoodsPartsName"));//部件
- map.put("textField_m8pi90fa",outSideDetail.get("GoodsCode"));//款号
- map.put("textField_m8pi90fe",outSideDetail.get("GoodsName"));//款名
- map.put("textField_m8pjta83",outSideDetail.get("GoodsNeedleType"));//针型
- map.put("textField_m8pjta84",outSideDetail.get("GoodsMachineType"));//机型
- map.put("textField_m8pjta85",outSideDetail.get("ColorName"));//颜色
- map.put("textField_m8pi90fi",outSideDetail.get("SizeName"));//尺码
- map.put("textField_m8pjta86",outSideDetail.get("WPSProcStepName"));//工序
- map.put("numberField_m8pi90fk",outSideDetail.get("ProcessONDetailQty"));//外发数
- map.put("numberField_m8pjta87",outSideDetail.get("WPSProcStepPrice"));//工序单价
- map.put("textareaField_m8pjta88",outSideDetail.get("ProcessItemDesc"));//备注
- map.put("textField_m8pi90fm",outSideDetail.get("ProcessItemReferBillCode"));//加工单号
- num += ((BigDecimal) outSideDetail.get("ProcessONDetailQty")).intValue();
- outSideDetails.add(map);
- }
- formData.put("tableField_m8pi90f9",outSideDetails);
- formData.put("numberField_m8pi90hw",num);//外发数合计
- List<Map> processMaterialList = processMaterialMapper.selectProcessMaterialByGoodsProperty(process.getProcessID(),3);
- List<Map> processMaterials = new ArrayList<>();
- for (Map processMaterial : processMaterialList) {
- Map map = new HashMap();
- map.put("textField_m8pi90g3",processMaterial.get("GoodsPartsName"));//部件
- map.put("textField_m8pi90g5",processMaterial.get("GoodsCode"));//原料编码
- map.put("textField_m8pi90g7",processMaterial.get("GoodsName"));//原料名称
- map.put("textField_m8pi90g9",processMaterial.get("ColorName"));//颜色
- map.put("textField_m8pi90gb",processMaterial.get("ProcessMaterialColorVCode"));//色号
- map.put("textField_m8pi90gd",processMaterial.get("ProcessMaterialDes"));//批号
- map.put("textField_m8pi90gf",processMaterial.get("UnitName"));//单位
- map.put("numberField_m8pi90gh",processMaterial.get("ProcessMaterialQty"));//需求数
- map.put("numberField_m8pjta81",processMaterial.get("ProcessMaterialPickQty"));//已领数
- processMaterials.add(map);
- }
- formData.put("tableField_m8pi90g2",processMaterials);
- //辅料需求
- List<Map> processMaterialList2 = processMaterialMapper.selectProcessMaterialByGoodsProperty(process.getProcessID(),4);
- List<Map> processMaterials2 = new ArrayList<>();
- for (Map processMaterial : processMaterialList2) {
- Map map = new HashMap();
- map.put("textField_m8pi90h5",processMaterial.get("GoodsCode"));//辅料编码
- map.put("textField_m8pi90h6",processMaterial.get("GoodsName"));//辅料名称
- map.put("textField_m8pi90h7",processMaterial.get("ColorName"));//颜色
- map.put("textField_m8pi90h9",processMaterial.get("GoodsSpecs"));//规格
- map.put("textField_m8pi90ha",processMaterial.get("UnitName"));//单位
- map.put("numberField_m8pi90hb",processMaterial.get("ProcessMaterialQty"));//需求数
- processMaterials2.add(map);
- }
- formData.put("tableField_m8pi90hc",processMaterials2);
- ydClient.operateData(YDParam.builder()
- .formUuid("FORM-BEEFBB3E63CB427DA0FFD4391780ED2AAIQ4")
- .searchCondition(JSONObject.toJSONString(Arrays.asList(YDConf.searchCondition_TextFiled("textField_m8pi90ei",process.getProcessCode(),"eq"))))
- .formDataJson(JSONObject.toJSONString(formData))
- .build(), YDConf.FORM_OPERATION.upsert);
- }
- return McR.success();
- }
- @Override
- public McR syncProcessOut2() {
- LambdaQueryWrapper<Process> processLambdaQueryWrapper = new LambdaQueryWrapper<>();
- processLambdaQueryWrapper.and(wrapper -> wrapper.ge(Process::getProcessUpdateDatetime, DateUtil.beginOfDay(DateUtil.yesterday()))
- .or()
- .ge(Process::getProcessCreateDatetime,DateUtil.beginOfDay(DateUtil.yesterday())))
- .eq(Process::getEntityObjKey,"ProductionProcOutSideN")
- .eq(Process::getProcessOutSideType,0)
- .eq(Process::getProcessStatus,2);
- /*processLambdaQueryWrapper.and(wrapper -> wrapper.ge(Process::getProcessUpdateDatetime, "2025-04-10 00:00:00")
- .or()
- .ge(Process::getProcessCreateDatetime,"2025-04-10 00:00:00"))
- .eq(Process::getEntityObjKey,"ProductionProcOutSideN")
- .eq(Process::getProcessOutSideType,0)
- .eq(Process::getProcessStatus,2);*/
- List<Process> processeList= processMapper.selectList(processLambdaQueryWrapper);
- for (Process process : processeList) {
- Map formData = new HashMap();
- formData.put("dateField_m8pi90ec", process.getProcessDate().getTime());//单据日期
- formData.put("textField_m8pi90ei",process.getProcessCode());//单据编号
- formData.put("textField_m8pi90es","总部");//组织机构
- formData.put("dateField_m8pi90eo",process.getProcessDeliveryDate().getTime());//交货日期
- LambdaQueryWrapper<Client> clientLambdaQueryWrapper = new LambdaQueryWrapper<>();
- clientLambdaQueryWrapper.eq(Client::getClientID,process.getFactoryID());
- Client client = clientMapper.selectOne(clientLambdaQueryWrapper);
- if (Objects.nonNull(client)){
- formData.put("textField_m8pi90ex",client.getClientName());//加工厂
- }
- formData.put("textareaField_m8pi90f6",process.getProcessDescription());//备注
- //外发明细
- double num = 0;
- double price = 0;
- List<Map> outSideDetails = new ArrayList<>();
- List<Map> outSideDetailList = processMapper.selectOutSideDetails(process.getProcessID());
- for (Map outSideDetail : outSideDetailList) {
- Map map = new HashMap();
- map.put("textField_m8pi90fa",outSideDetail.get("GoodsCode"));//款号
- map.put("textField_m8pjta85",outSideDetail.get("ColorName"));//颜色
- map.put("textField_m8pi90fi",outSideDetail.get("SizeName"));//尺码
- if (Objects.isNull(outSideDetail.get("ColorName")) && Objects.isNull(outSideDetail.get("SizeName"))){
- map.put("textField_m8pld6zz","不分色码");
- }else {
- map.put("textField_m8pld6zz","分色分码");
- }
- map.put("textField_m8pjta86",outSideDetail.get("WPSProcStepName"));//工序
- map.put("numberField_m8pi90fk",outSideDetail.get("ProcessItemQty"));//委外件数
- map.put("numberField_m8pjta87",outSideDetail.get("WPSProcStepPrice"));//工序单价
- map.put("textareaField_m8pjta88",outSideDetail.get("ProcessItemDesc"));//备注
- map.put("textField_m8pi90fm",outSideDetail.get("ProcessItemReferBillCode"));//加工单号
- num += ((BigDecimal) outSideDetail.get("ProcessONDetailQty")).doubleValue();
- price += ((BigDecimal) outSideDetail.get("WPSProcStepPrice")).doubleValue();
- outSideDetails.add(map);
- }
- formData.put("tableField_m8pi90f9",outSideDetails);
- formData.put("numberField_m8pi90hw",num);//数量合计
- formData.put("numberField_m8pld6zw",price);//金额合计
- ydClient.operateData(YDParam.builder()
- .formUuid("FORM-CBB8EADCBBD84982BAD3C6F38CB56171V6PS")
- .searchCondition(JSONObject.toJSONString(Arrays.asList(YDConf.searchCondition_TextFiled("textField_m8pi90ei",process.getProcessCode(),"eq"))))
- .formDataJson(JSONObject.toJSONString(formData))
- .build(), YDConf.FORM_OPERATION.upsert);
- }
- return McR.success();
- }
- @Override
- public McR syncProcessOn() {
- LambdaQueryWrapper<ProcessONDetail> processONDetailLambdaQueryWrapper = new LambdaQueryWrapper<>();
- processONDetailLambdaQueryWrapper.and(wrapper -> wrapper.ge(ProcessONDetail::getProcessONDetailUpdateDate, DateUtil.beginOfDay(DateUtil.yesterday()))
- .or()
- .ge(ProcessONDetail::getProcessONDetailCreatDate,DateUtil.beginOfDay(DateUtil.yesterday())))
- .eq(ProcessONDetail::getProcessONDetailType,2)//回收
- .eq(ProcessONDetail::getProcessONDetailReceiptWay,2)//扫码录入
- .like(ProcessONDetail::getProcessONDetailCode,"PCWR");
- /*processONDetailLambdaQueryWrapper.and(wrapper -> wrapper.ge(ProcessONDetail::getProcessONDetailUpdateDate, "2025-04-10 00:00:00")
- .or()
- .ge(ProcessONDetail::getProcessONDetailCreatDate,"2025-04-10 00:00:00"))
- .eq(ProcessONDetail::getProcessONDetailType,2)//回收
- .eq(ProcessONDetail::getProcessONDetailReceiptWay,2)//扫码录入
- .like(ProcessONDetail::getProcessONDetailCode,"PCWR");*/
- List<ProcessONDetail> processONDetails = processONDetailMapper.selectList(processONDetailLambdaQueryWrapper);
- Set<String> processONDetailCodeSet = new HashSet<>();
- for (ProcessONDetail processONDetail : processONDetails) {
- String processONDetailCode = processONDetail.getProcessONDetailCode();
- processONDetailCodeSet.add(processONDetailCode);
- }
- for (String processONDetailCode : processONDetailCodeSet) {
- Map formData = new HashMap();
- //基础信息
- Map base = processMapper.selectOnBaseInfo(processONDetailCode);
- formData.put("dateField_m8pi90ec",((Date)base.get("ProcessONDetailDate")).getTime());//单据日期
- formData.put("textField_m99n1t8f",base.get("ProcessONDetailCode"));//回收单号
- formData.put("textField_m8pkxdg5",base.get("WPSProcStepName"));//工序
- formData.put("textField_m8pi90ex",base.get("ClientName"));//加工厂
- //关联明细
- List<Map> details = new ArrayList<>();
- List<Map> detailList = processMapper.selectOnDetails(processONDetailCode);
- int sumQty = 0;
- double sumWeight = 0;
- for (Map detail : detailList) {
- Map map= new HashMap();
- map.put("textField_m8pkxdf6",detail.get("GoodsCode"));//款号
- map.put("textField_m99n1t8d",detail.get("GoodsName"));//款名
- map.put("textField_m99n1t8e",detail.get("GoodsPartsName"));//部件
- map.put("textField_m8pkxdfa",detail.get("ColorName"));//颜色
- map.put("textField_m8pkxdfb",detail.get("SizeName"));//尺码
- map.put("numberField_m99n1t88",detail.get("ProcessONDetailQty"));//件数
- map.put("numberField_m99n1t89",detail.get("ProcessONDetailWeight"));//重量
- map.put("textField_m99n1t8a",detail.get("ProcessCode"));//外发单号
- map.put("textField_m99n1t8b",detail.get("ProcessItemReferBillCode"));//毛衫加工单
- sumQty += ((BigDecimal) detail.get("ProcessONDetailQty")).intValue();
- sumWeight += ((BigDecimal) detail.get("ProcessONDetailWeight")).doubleValue();
- details.add(map);
- }
- formData.put("tableField_m8pkxdfh",details);
- formData.put("numberField_m8pkxdgc",sumQty);//件数合计
- formData.put("numberField_m8pkxdgd",sumWeight);//重量合计
- //款号汇总
- //将details根据款号、款名、颜色、尺码进行分组,计算总件数、总数量
- List<Map<String, Object>> summaryList = details.stream()
- .collect(Collectors.groupingBy(
- detail -> {
- // 使用款号、款名、颜色、尺码作为分组键
- return detail.get("textField_m8pkxdf6") + "-" +
- detail.get("textField_m99n1t8d") + "-" +
- detail.get("textField_m8pkxdfa") + "-" +
- detail.get("textField_m8pkxdfb");
- }
- ))
- .entrySet().stream()
- .map(entry -> {
- Map<String, Object> groupSummary = new HashMap<>();
- List<Map> groupDetails = entry.getValue();
- int totalQty = groupDetails.stream()
- .mapToInt(detail -> ((BigDecimal) detail.get("numberField_m99n1t88")).intValue())
- .sum();
- double totalWeight = groupDetails.stream()
- .mapToDouble(detail -> ((BigDecimal) detail.get("numberField_m99n1t89")).doubleValue())
- .sum();
- // 设置汇总信息
- groupSummary.put("textField_m99n1t87", entry.getKey().split("-")[0]); //款号
- groupSummary.put("textField_m99n1t8c", entry.getKey().split("-")[1]); //款名
- groupSummary.put("textField_m8pkxdfl", entry.getKey().split("-")[2]); //颜色
- groupSummary.put("textField_m8pkxdfm", entry.getKey().split("-")[3]); //尺码
- groupSummary.put("numberField_m8pkxdfn", totalQty); //总件数
- groupSummary.put("numberField_m8pkxdfw", totalWeight); //总重量
- return groupSummary;
- })
- .collect(Collectors.toList());
- formData.put("tableField_m8pkxdfj",summaryList);
- //条码明细
- List<Map> cardBarDetails = new ArrayList<>();
- List<Map> cardBarDetailList = processMapper.selectOnCardBarDetails(processONDetailCode);
- for (Map cardBarDetail : cardBarDetailList) {
- Map map= new HashMap();
- map.put("textField_m99n1t8p",cardBarDetail.get("ProceCardBarCode"));//条码
- cardBarDetails.add(map);
- }
- formData.put("tableField_m99n1t8k",cardBarDetails);
- ydClient.operateData(YDParam.builder()
- .formUuid("FORM-C003D6F6769F400FA324851889EE458EOH9H")
- .searchCondition(JSONObject.toJSONString(Arrays.asList(YDConf.searchCondition_TextFiled("textField_m99n1t8f",processONDetailCode,"eq"))))
- .formDataJson(JSONObject.toJSONString(formData))
- .build(), YDConf.FORM_OPERATION.upsert);
- }
- return McR.success();
- }
- @Override
- public McR syncProcessOn2() {
- LambdaQueryWrapper<ProcessONDetail> processONDetailLambdaQueryWrapper = new LambdaQueryWrapper<>();
- processONDetailLambdaQueryWrapper.and(wrapper -> wrapper.ge(ProcessONDetail::getProcessONDetailUpdateDate, DateUtil.beginOfDay(DateUtil.yesterday()))
- .or()
- .ge(ProcessONDetail::getProcessONDetailCreatDate,DateUtil.beginOfDay(DateUtil.yesterday())))//
- .eq(ProcessONDetail::getProcessONDetailType,2)//回收
- .eq(ProcessONDetail::getProcessONDetailReceiptWay,2)//扫码录入
- .like(ProcessONDetail::getProcessONDetailCode,"PCNR");
- /*processONDetailLambdaQueryWrapper.and(wrapper -> wrapper.ge(ProcessONDetail::getProcessONDetailUpdateDate, "2025-04-10 00:00:00")
- .or()
- .ge(ProcessONDetail::getProcessONDetailCreatDate,"2025-04-10 00:00:00"))//
- .eq(ProcessONDetail::getProcessONDetailType,2)//回收
- .eq(ProcessONDetail::getProcessONDetailReceiptWay,2)//扫码录入
- .like(ProcessONDetail::getProcessONDetailCode,"PCNR");*/
- List<ProcessONDetail> processONDetails = processONDetailMapper.selectList(processONDetailLambdaQueryWrapper);
- Set<String> processONDetailCodeSet = new HashSet<>();
- for (ProcessONDetail processONDetail : processONDetails) {
- String processONDetailCode = processONDetail.getProcessONDetailCode();
- processONDetailCodeSet.add(processONDetailCode);
- }
- for (String processONDetailCode : processONDetailCodeSet) {
- Map formData = new HashMap();
- //基础信息
- Map base = processMapper.selectOnBaseInfo(processONDetailCode);
- formData.put("dateField_m8pi90ec",((Date)base.get("ProcessONDetailDate")).getTime());//单据日期
- formData.put("textField_m99n1t8f",base.get("ProcessONDetailCode"));//回收单号
- formData.put("textField_m8pkxdg5",base.get("WPSProcStepName"));//工序
- formData.put("textField_m8pi90ex",base.get("ClientName"));//加工厂
- //关联明细
- List<Map> details = new ArrayList<>();
- List<Map> detailList = processMapper.selectOnDetails(processONDetailCode);
- int sumQty = 0;
- double sumWeight = 0;
- for (Map detail : detailList) {
- Map map= new HashMap();
- map.put("textField_m8pkxdf6",detail.get("GoodsCode"));//款号
- map.put("textField_m99n1t8d",detail.get("GoodsName"));//款名
- map.put("textField_m99n1t8e",detail.get("GoodsPartsName"));//部件
- map.put("textField_m8pkxdfa",detail.get("ColorName"));//颜色
- map.put("textField_m8pkxdfb",detail.get("SizeName"));//尺码
- map.put("numberField_m99n1t88",detail.get("ProcessONDetailQty"));//件数
- map.put("numberField_m99n1t89",detail.get("ProcessONDetailWeight"));//重量
- map.put("textField_m99n1t8a",detail.get("ProcessCode"));//外发单号
- map.put("textField_m99n1t8b",detail.get("ProcessItemReferBillCode"));//毛衫加工单
- sumQty += ((BigDecimal) detail.get("ProcessONDetailQty")).intValue();
- sumWeight += ((BigDecimal) detail.get("ProcessONDetailWeight")).doubleValue();
- details.add(map);
- }
- formData.put("tableField_m8pkxdfh",details);
- formData.put("numberField_m8pkxdgc",sumQty);//件数合计
- formData.put("numberField_m8pkxdgd",sumWeight);//重量合计
- //款号汇总
- //将details根据款号、款名、颜色、尺码进行分组,计算总件数、总数量
- List<Map<String, Object>> summaryList = details.stream()
- .collect(Collectors.groupingBy(
- detail -> {
- // 使用款号、款名、颜色、尺码作为分组键
- return detail.get("textField_m8pkxdf6") + "-" +
- detail.get("textField_m99n1t8d") + "-" +
- detail.get("textField_m8pkxdfa") + "-" +
- detail.get("textField_m8pkxdfb");
- }
- ))
- .entrySet().stream()
- .map(entry -> {
- Map<String, Object> groupSummary = new HashMap<>();
- List<Map> groupDetails = entry.getValue();
- int totalQty = groupDetails.stream()
- .mapToInt(detail -> ((BigDecimal) detail.get("numberField_m99n1t88")).intValue())
- .sum();
- double totalWeight = groupDetails.stream()
- .mapToDouble(detail -> ((BigDecimal) detail.get("numberField_m99n1t89")).doubleValue())
- .sum();
- // 设置汇总信息
- groupSummary.put("textField_m99n1t87", entry.getKey().split("-")[0]); //款号
- groupSummary.put("textField_m99n1t8c", entry.getKey().split("-")[1]); //款名
- groupSummary.put("textField_m8pkxdfl", entry.getKey().split("-")[2]); //颜色
- groupSummary.put("textField_m8pkxdfm", entry.getKey().split("-")[3]); //尺码
- groupSummary.put("numberField_m8pkxdfn", totalQty); //总件数
- groupSummary.put("numberField_m8pkxdfw", totalWeight); //总重量
- return groupSummary;
- })
- .collect(Collectors.toList());
- formData.put("tableField_m8pkxdfj",summaryList);
- //条码明细
- List<Map> cardBarDetails = new ArrayList<>();
- List<Map> cardBarDetailList = processMapper.selectOnCardBarDetails2(processONDetailCode);
- for (Map cardBarDetail : cardBarDetailList) {
- Map map= new HashMap();
- map.put("textField_m99n1t8p",cardBarDetail.get("ProceCardBarCode"));//条码
- cardBarDetails.add(map);
- }
- formData.put("tableField_m99n1t8k",cardBarDetails);
- ydClient.operateData(YDParam.builder()
- .formUuid("FORM-B6D30D0FD0064383BBD45DD64078B31E3KQK")
- .searchCondition(JSONObject.toJSONString(Arrays.asList(YDConf.searchCondition_TextFiled("textField_m99n1t8f",processONDetailCode,"eq"))))
- .formDataJson(JSONObject.toJSONString(formData))
- .build(), YDConf.FORM_OPERATION.upsert);
- }
- return McR.success();
- }
- }
|