diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/bigScreen/wql/BIGSCREENPRODUCT.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/bigScreen/wql/BIGSCREENPRODUCT.wql index 738978f5..79bc9337 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/bigScreen/wql/BIGSCREENPRODUCT.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/bigScreen/wql/BIGSCREENPRODUCT.wql @@ -233,11 +233,9 @@ IF 输入.flag = "10" FROM mps_bd_produceshiftorder shiftorder LEFT JOIN pdm_bi_workprocedure workprocedure ON shiftorder.workprocedure_id = workprocedure.workprocedure_id - LEFT JOIN sys_dict_detail sys ON sys.VALUE= workprocedure.worksection_type_scode AND sys.dict_id = '87' left join md_me_materialbase material on material.material_id =shiftorder.material_id WHERE shiftorder.is_delete='0' - and workprocedure.workprocedure_code IN ( '07', '06', '02' ) OPTION 输入.produce_date <> "" shiftorder.produce_date = 输入.produce_date ENDOPTION @@ -294,11 +292,9 @@ IF 输入.flag = "12" FROM mps_bd_produceshiftorder shiftorder LEFT JOIN pdm_bi_workprocedure workprocedure ON shiftorder.workprocedure_id = workprocedure.workprocedure_id - LEFT JOIN sys_dict_detail sys ON sys.VALUE= workprocedure.worksection_type_scode AND sys.dict_id = '87' left join md_me_materialbase material on material.material_id =shiftorder.material_id WHERE shiftorder.is_delete='0' - and workprocedure.workprocedure_code IN ( '07', '06', '02' ) OPTION 输入.end_produce_date <> "" shiftorder.produce_date <= 输入.end_produce_date ENDOPTION @@ -323,11 +319,9 @@ IF 输入.flag = "13" FROM mps_bd_produceshiftorder shiftorder LEFT JOIN pdm_bi_workprocedure workprocedure ON shiftorder.workprocedure_id = workprocedure.workprocedure_id - LEFT JOIN sys_dict_detail sys ON sys.VALUE= workprocedure.worksection_type_scode AND sys.dict_id = '87' left join md_me_materialbase material on material.material_id =shiftorder.material_id WHERE shiftorder.is_delete='0' - and workprocedure.workprocedure_code IN ( '07', '06', '02' ) OPTION 输入.end_produce_date <> "" shiftorder.produce_date <= 输入.end_produce_date ENDOPTION diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/IMdMeMaterialbaseService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/IMdMeMaterialbaseService.java index def088a1..e5ef8bb0 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/IMdMeMaterialbaseService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/IMdMeMaterialbaseService.java @@ -10,6 +10,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; +import java.util.Map; /** *

@@ -25,4 +26,6 @@ public interface IMdMeMaterialbaseService extends IService { List getPdaBcpGetMaterial(PdaQuery whereJson, PageQuery pageQuery); + List pageQuery(Map whereJson); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/mapper/MdMeMaterialbaseMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/mapper/MdMeMaterialbaseMapper.java index 321aaedd..1813bc0e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/mapper/MdMeMaterialbaseMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/mapper/MdMeMaterialbaseMapper.java @@ -21,4 +21,6 @@ import java.util.Map; public interface MdMeMaterialbaseMapper extends BaseMapper { List getPdaBcpGetMaterial(@Param("query") PdaQuery map, @Param("pageQuery") PageQuery pageQuery); + + List queryAll(Map whereJson); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/mapper/MdMeMaterialbaseMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/mapper/MdMeMaterialbaseMapper.xml index 87010c96..b5a089dc 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/mapper/MdMeMaterialbaseMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/mapper/MdMeMaterialbaseMapper.xml @@ -20,4 +20,36 @@ order by mater.material_code ASC + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/impl/MdMeMaterialbaseServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/impl/MdMeMaterialbaseServiceImpl.java index c8fe0aa7..61df1e99 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/impl/MdMeMaterialbaseServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/impl/MdMeMaterialbaseServiceImpl.java @@ -59,6 +59,11 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl pageQuery(Map whereJson) { + return this.baseMapper.queryAll(whereJson); + } + @Override public void excelImport(MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws IOException { InputStream inputStream = file.getInputStream(); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份master/rest/MaterialbaseController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份master/rest/MaterialbaseController.java index 5a8f9a81..7768adbf 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份master/rest/MaterialbaseController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份master/rest/MaterialbaseController.java @@ -9,6 +9,7 @@ import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.nl.common.anno.Log; import lombok.extern.slf4j.Slf4j; +import org.nl.common.domain.query.PageQuery; import org.nl.common.utils.RedissonUtils; import org.nl.wms.masterdata_manage.备份master.constant.MaterOptTypeEnum; import org.nl.wms.masterdata_manage.备份master.service.MaterialbaseService; @@ -39,9 +40,7 @@ public class MaterialbaseController { @GetMapping @Log("查询物料") - //("查询物料") - //@PreAuthorize("@el.check('Materialbase:list')") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { return new ResponseEntity<>(materialBaseService.queryAll(whereJson, page), HttpStatus.OK); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份master/service/MaterialbaseService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份master/service/MaterialbaseService.java index bc908800..96fc0e98 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份master/service/MaterialbaseService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份master/service/MaterialbaseService.java @@ -3,6 +3,7 @@ package org.nl.wms.masterdata_manage.备份master.service; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import org.nl.common.domain.query.PageQuery; import org.nl.wms.masterdata_manage.备份master.service.dto.MaterialbaseDto; import org.springframework.data.domain.Pageable; import org.springframework.web.multipart.MultipartFile; @@ -27,7 +28,7 @@ public interface MaterialbaseService { * @param page 分页参数 * @return Map */ - Map queryAll(Map whereJson, Pageable page); + Object queryAll(Map whereJson, PageQuery page); /** * 查询所有数据不分页 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份master/service/impl/MaterialbaseServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份master/service/impl/MaterialbaseServiceImpl.java index b2e28370..dee4b068 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份master/service/impl/MaterialbaseServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份master/service/impl/MaterialbaseServiceImpl.java @@ -9,9 +9,13 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.json.XML; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.WebServiceUtil; import org.nl.modules.common.exception.BadRequestException; @@ -68,7 +72,7 @@ public class MaterialbaseServiceImpl implements MaterialbaseService{ private IMdPbMeasureunitService mdPbMeasureunitService; @Override - public Map queryAll(Map whereJson, Pageable page) { + public Object queryAll(Map whereJson, PageQuery page) { String search = MapUtil.getStr(whereJson, "search"); //物料限制的时候使用,初始化页面 String class_idStr = MapUtil.getStr(whereJson, "class_idStr"); @@ -112,11 +116,11 @@ public class MaterialbaseServiceImpl implements MaterialbaseService{ where.append(")"); map.put("idssql", where.toString()); } - else{ - map.put("idssql", "1=1"); - } - JSONObject jo = WQL.getWO("QMD_ME_MATERIAL").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "material_id"); - return jo; + Page pageResult = PageHelper.startPage(page.getPage()+1, page.getSize()); + List maps = materialbaseService.pageQuery(map); + TableDataInfo build = TableDataInfo.build(maps); + build.setTotalElements(pageResult.getTotal()); + return build; } @Override diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/saleorder/service/impl/MpsSaleOrderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/saleorder/service/impl/MpsSaleOrderServiceImpl.java index 29e8947e..94923554 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/saleorder/service/impl/MpsSaleOrderServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/saleorder/service/impl/MpsSaleOrderServiceImpl.java @@ -145,7 +145,6 @@ public class MpsSaleOrderServiceImpl extends ServiceImpl saleCode = baseMapper.queryAll(new OrderQuery()); -// if(saleCode.stream().anyMatch(m -> col.equals(m.get("sale_code")) && "10".equals(m.get("status")))) { -// continue; -// } if(j == 0) { if(StringUtils.isBlank(col)) { throw new BadRequestException("销售单号不能为空"); @@ -169,61 +163,45 @@ public class MpsSaleOrderServiceImpl extends ServiceImpl().eq("material_code", col)); - if(meMaterialBases == null) { - errorMap.put("第" + i + "行" + col, "物料编号对应物料信息不存在"); + List meMaterialBases = materialbaseService.list(new QueryWrapper().eq("material_spec", col)); + if(CollectionUtils.isEmpty(meMaterialBases)) { + errorMap.put("第" + i + "行" + col, "物料规格对应物料信息不存在"); } else{ - mpsSaleOrder.setMaterial_id(meMaterialBases.getMaterial_id()); - // 物料编码 - mpsSaleOrder.setMaterial_code(meMaterialBases.getMaterial_code()); - // 计量单位 - mpsSaleOrder.setQty_unit_id(meMaterialBases.getBase_unit_id()); - mpsSaleOrder.setMaterial_spec(meMaterialBases.getMaterial_spec()); + Optional first = meMaterialBases.stream().findFirst(); + first.ifPresent(mdMeMaterialbase -> + { + // 物料id + mpsSaleOrder.setMaterial_id(mdMeMaterialbase.getMaterial_id()); + // 物料编码 + mpsSaleOrder.setMaterial_code(mdMeMaterialbase.getMaterial_code()); + // 计量单位 + mpsSaleOrder.setQty_unit_id(mdMeMaterialbase.getBase_unit_id()); + mpsSaleOrder.setMaterial_spec(mdMeMaterialbase.getMaterial_spec()); + }); } } if(j == 3) { - if(StringUtils.isBlank(col)) { - throw new BadRequestException("物料规格不能为空"); - } - //规格校验? - } - if(j == 4) { if(StringUtils.isBlank(col)) { throw new BadRequestException("工段信息不能为空"); } //智能一线,智能三线 mpsSaleOrder.setProduct_area(col.contains("三") || col.contains("3") ? "A3" : "A1"); } - if(j == 5) { + if(j == 4) { if(StringUtils.isBlank(col)) { throw new BadRequestException("销售数量不能为空"); } BigDecimal saleQty = new BigDecimal(NumberUtils.isNumber(col) ? NumberUtils.toDouble(col) : 0); mpsSaleOrder.setSale_qty(saleQty); } - if(j == 6) { - //计量单位 - if(StringUtils.isNotBlank(col)) { - mpsSaleOrder.setQty_unit_name(col); - } - } - // if(j == 7) { - // //最早开始时间(下料时间) - // if(StringUtils.isNotBlank(col)) { - // mpsSaleOrder.setEarly_start_time(DateUtil.format(DateUtil.parse(col), "yyyy-MM-dd")); - // } - // } - if(j == 8) { + if(j == 5) { if(StringUtils.isBlank(col)) { throw new BadRequestException("订单交期不能为空"); } @@ -242,6 +220,23 @@ public class MpsSaleOrderServiceImpl extends ServiceImpl list = iDeviceService.list(new QueryWrapper() - .eq("workprocedure_id", "1535144552481034240").eq("is_used",true) + .eq("workprocedure_id", "1535144552481034240") .in("device_code", devices)); - if (list.size()< devices.length){ - String unUsed = Arrays.stream(devices).filter(a -> - list.stream().map(PdmBiDevice::getDevice_code). - collect(Collectors.toList()).contains(a)) - .collect(Collectors.joining(",")); - throw new BadRequestException("选择的储料仓"+unUsed+"存在清洗未完成的任务"); - } Set collect = list.stream().map(PdmBiDevice::getMaterial_id).collect(Collectors.toSet()); if (collect.size()>1){ @@ -270,14 +263,14 @@ public class PdaWashController { @Log("确认下料") @SaIgnore public ResponseEntity washFinish(@RequestBody JSONObject query) { - washSendMaterialTask.createTask(query); + RedissonUtils.lock(()->{washSendMaterialTask.createTask(query);},"washFinish",null); return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK); } @PostMapping("/washQzFinish") @Log("强制下料") @SaIgnore public ResponseEntity washQzFinish(@RequestBody JSONObject query) { - washSendMaterialQZTask.createTask(query); + RedissonUtils.lock(()->{washSendMaterialQZTask.createTask(query);},"washQzFinish",null); return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/TmpKZController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/TmpKZController.java index 142f7939..104a7fec 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/TmpKZController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/TmpKZController.java @@ -11,6 +11,7 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.api.R; import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; import org.nl.common.TableDataInfo; @@ -19,6 +20,9 @@ import org.nl.common.enums.StatusEnum; import org.nl.common.utils.RedissonUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.wms.ext_manage.acs.service.WmsToAcsService; +import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService; +import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; +import org.nl.wms.scheduler_manage.service.extendtask.Engrave.EngraveCallService; import org.nl.wms.scheduler_manage.service.extendtask.plotter.PlotterCallEmptyTask; import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; @@ -27,12 +31,17 @@ import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.HashMap; +import java.util.List; import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; @RestController @Api(tags = "一体机刻字服务") @@ -49,6 +58,10 @@ public class TmpKZController { private PlotterCallEmptyTask plotterCallEmptyTask; @Autowired private ISchBaseTaskService taskService; + @Autowired + private EngraveCallService engraveScheduleService; + @Autowired + private IMdMeMaterialbaseService materialbaseService; /** * * @param param @@ -139,5 +152,36 @@ public class TmpKZController { },"刻字上料送载具",null); return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK); } + @PostMapping("/kz/submitkz") + @SaIgnore + public ResponseEntity submitkz(@RequestBody JSONArray param){ + engraveScheduleService.createTask(param); + return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK); + } + + @PostMapping("/kz/kzTasks") + @SaIgnore + public ResponseEntity kzTasks(@RequestBody JSONObject param){ + List> list = taskService.listMaps(new QueryWrapper() + .lt("task_status", StatusEnum.TASK_FINISH.getCode()) + .isNotNull("task_step") + .eq("product_area", param.getString("product_area")) + .nested(a -> + a.eq("task_type", AcsTaskEnum.TASK_STRUCT_OUT.getCode()) + .or() + .eq("task_type", AcsTaskEnum.TASK_Engrave_CALL.getCode())) + ); + Set materials = list.stream().map(a->String.valueOf(a.get("material_id"))).collect(Collectors.toSet()); + if (!CollectionUtils.isEmpty(materials)){ + Map materialMap = materialbaseService.listByIds(materials) + .stream().collect(HashMap::new, (k, v) -> k.put(v.getMaterial_id(), v), HashMap::putAll); + for (Map map : list) { + map.put("material_spec",materialMap.get(map.get("material_id")).getMaterial_spec()); + map.put("material_code",materialMap.get(map.get("material_id")).getMaterial_code()); + } + } + + return new ResponseEntity<>(TableDataInfo.build(list),HttpStatus.OK); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/PdmProduceWorkorderController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/PdmProduceWorkorderController.java index 4f195aee..8e10839f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/PdmProduceWorkorderController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/PdmProduceWorkorderController.java @@ -14,6 +14,7 @@ import lombok.extern.slf4j.Slf4j; import org.nl.common.TableDataInfo; import org.nl.common.anno.Log; import org.nl.common.domain.query.PageQuery; +import org.nl.common.enums.WorkerOrderEnum; import org.nl.common.utils.RedissonUtils; import org.nl.common.utils.SecurityUtils; import org.nl.wms.product_manage.service.device.IPdmBiDeviceService; @@ -62,6 +63,15 @@ public class PdmProduceWorkorderController { return new ResponseEntity<>(iPdmProduceWorkorderService.queryAll(query, page), HttpStatus.OK); } + @PostMapping + @Log("查询工单管理") + //("查询工单管理") + public ResponseEntity queryPad(@RequestBody WorkorderQuery query) { + PageQuery page = new PageQuery();page.setPage(0);page.setSize(99); + query.setOrder_status(WorkerOrderEnum.PRODUCTING.getCode()); + return new ResponseEntity<>(iPdmProduceWorkorderService.queryAll(query, page), HttpStatus.OK); + } + @PostMapping("/create") @Log("新增工单管理") //("新增工单管理") diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.xml index 8c68bc85..c8b8b171 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.xml @@ -27,7 +27,7 @@ and find_in_set(ShiftOrder.workorder_status, #{query.order_status}) - and ShiftOrder.device_code = #{query.device_code} + and ShiftOrder.device_code like '%${query.device_code}%' and ShiftOrder.shift_type_scode = #{query.shift_type_scode} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java index cd128742..25fbf301 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java @@ -44,6 +44,8 @@ import org.nl.wms.product_manage.service.workorder.dto.ReportQuery; import org.nl.wms.product_manage.service.workorder.dto.WorkorderQuery; import org.nl.wms.product_manage.service.workprocedure.IPdmBiWorkprocedureService; import org.nl.wms.product_manage.service.workprocedure.dao.PdmBiWorkprocedure; +import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; +import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; import org.nl.wms.system_manage.service.user.ISysUserService; import org.nl.wms.system_manage.service.user.dao.SysUser; import org.springframework.beans.factory.annotation.Autowired; @@ -92,6 +94,8 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl() - .nested(i -> i - .isNull("workorder_code").or() - .eq("workorder_code", "").or() - .eq("workorder_code", "0")) .eq("workorder_id", workorder_id)); //aps排产完成的工单,生成工单编号再下发 - if(null!=pdmProduceWorkorder) { + if(StringUtils.isEmpty(pdmProduceWorkorder.getWorkorder_code()) || pdmProduceWorkorder.getWorkorder_code().equals("0")) { this.update(new UpdateWrapper() .eq("workorder_id", pdmProduceWorkorder.getWorkorder_id()) .set("workorder_code", CodeUtil.getNewCode("PDM_SHIFTORDER"))); @@ -247,6 +247,11 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl() + .set("task_status",StatusEnum.TASK_CANNEL.getCode()) + .eq("table_fk_id",pdmProduceWorkorder.getWorkorder_code()) + .lt("task_status",StatusEnum.TASK_RUNNING.getCode())); Map result = wmsToAcsService.orderStatusUpdate(array); if (!HttpStatus.OK.equals(result.get("status"))) { log.error((String) result.get("message")); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/controller/task/TaskController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/controller/task/TaskController.java index aa121357..7a2bab35 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/controller/task/TaskController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/controller/task/TaskController.java @@ -14,7 +14,7 @@ import org.nl.common.anno.Log; import lombok.extern.slf4j.Slf4j; import org.nl.common.domain.query.PageQuery; import org.nl.common.enums.StatusEnum; -import org.nl.wms.scheduler_manage.service.scheduler.EngraveScheduleService; +import org.nl.wms.scheduler_manage.service.extendtask.Engrave.EngraveCallService; import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; import org.nl.wms.system_manage.service.dict.ISysDictService; @@ -47,7 +47,7 @@ public class TaskController { private ISchBaseTaskService baseTaskService; @Autowired - private EngraveScheduleService engraveScheduleService; + private EngraveCallService engraveScheduleService; @GetMapping @Log("查询任务") @@ -140,14 +140,22 @@ public class TaskController { //@PreAuthorize("@el.check('task:edit')") public ResponseEntity update(@RequestBody Map map) { baseTaskService.operation(map); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); + return new ResponseEntity<>(HttpStatus.OK); } - @PutMapping("/engraveScheduleService") + @PostMapping("/operation") + @Log("任务操作") + //("任务操作") + public ResponseEntity operation(@RequestBody Map map) { + baseTaskService.operation(map); + return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK); + } + + @PostMapping("/engraveCallService") @SaIgnore - public ResponseEntity engraveScheduleService() { - engraveScheduleService.EngravePublish(); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); + public ResponseEntity engraveScheduleService(@RequestBody JSONArray query) { + engraveScheduleService.createTask(query); + return new ResponseEntity<>(HttpStatus.OK); } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/Engrave/EngraveCallMaterialTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/Engrave/EngraveCallMaterialTask.java deleted file mode 100644 index f6e8133e..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/Engrave/EngraveCallMaterialTask.java +++ /dev/null @@ -1,178 +0,0 @@ -package org.nl.wms.scheduler_manage.service.extendtask.Engrave; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import org.nl.common.enums.AcsTaskEnum; -import org.nl.common.enums.StatusEnum; -import org.nl.common.utils.IdUtil; -import org.nl.common.utils.MapOf; -import org.nl.modules.common.exception.BadRequestException; -import org.nl.modules.system.util.CodeUtil; -import org.nl.wms.ext_manage.acs.service.WmsToAcsService; -import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService; -import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; -import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; -import org.nl.wms.product_manage.service.workorder.dto.PdmProduceWorkorderDto; -import org.nl.wms.scheduler_manage.service.extendtask.manage.AbstractAcsTask; -import org.nl.wms.scheduler_manage.service.extendtask.manage.TaskStatusEnum; -import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; -import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; - -import java.math.BigDecimal; -import java.util.*; -import java.util.stream.Collectors; - -/* - * @author ZZQ - * @Date 2023/7/19 20:23 - */ -@Service -public class EngraveCallMaterialTask extends AbstractAcsTask { - private static final String ENGRAVE_WORKPRODURE = "1535144682756116480"; - - @Autowired - private ISchBaseTaskService taskService; - @Autowired - private IPdmProduceWorkorderService workorderService; - @Autowired - private IMdMeMaterialbaseService materialbaseService; - @Autowired - private WmsToAcsService wms; - - @Override - public void updateTaskStatus(JSONObject param, String status) { - SchBaseTask taskDao = taskService.getOne(new QueryWrapper() - .eq("task_id",param.getString("task_id"))); - if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { - taskDao.setTask_status(TaskStatusEnum.FINISHED.getCode()); - } - if (status.equals(AcsTaskEnum.STATUS_START.getCode())) { - taskDao.setTask_status(TaskStatusEnum.EXECUTING.getCode()); - } - if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) { - taskDao.setTask_status(TaskStatusEnum.CANCEL.getCode()); - } - taskService.updateById(taskDao); - } - - - @Override - @Transactional - public String createTask(JSONObject param) { - if (!param.getString("status").equals(AcsTaskEnum.STATUS_FINISH.getCode())){ return null; } - SchBaseTask one = taskService.getOne(new QueryWrapper() - .eq("task_id", param.getString("task_id"))); - SchBaseTask runTask = taskService.getOne(new QueryWrapper() - .eq("point_code1", "A1_KZ_SL") - .eq("task_type",AcsTaskEnum.TASK_Engrave_CALL.getCode()) - .lt("task_status", StatusEnum.TASK_FINISH.getCode())); - if (runTask!=null){ - if (one.getTask_id().equals(runTask.getTask_id())){ - return ""; - }else { - runTask.setTask_status(StatusEnum.TASK_CANNEL.getCode()); - runTask.setUpdate_time(new Date()); - runTask.setCreate_name("mes取消"); - runTask.setRemark("刻字上料关联搬运任务"+one.getTask_code()+"不正确,任务强制取消并从新生产"); - taskService.updateById(runTask); - } - } - BigDecimal canuse_qty; - MdMeMaterialbase material = materialbaseService.getOne(new QueryWrapper() - .eq("material_id",one.getMaterial_id()) - .eq("is_delete", false)); - - Map extParam = (Map) param.get("extParam"); - if (extParam == null || extParam.get("weight") == null){ - canuse_qty = one.getMaterial_qty().multiply(material.getNet_weight()); - }else { - canuse_qty = new BigDecimal(extParam.get("weight")); - } - int total = canuse_qty.intValue(); - ArrayList taskMap = new ArrayList<>(); - List workorders= workorderService.getOrderByDevLimit(MapOf.of("workprocedure_id", ENGRAVE_WORKPRODURE,"material_id",one.getMaterial_id())); - - for (int i = 0; i < workorders.size(); i++) { - PdmProduceWorkorderDto workorder = workorders.get(i); - if (canuse_qty.intValue()<=0){ - break ; - } - Map map = new HashMap(); - int min = Math.min(canuse_qty.intValue(), Math.min(workorder.getNeedQty().intValue(),workorder.getLimitQty().intValue())); - int weight = material.getNet_weight().multiply(BigDecimal.valueOf(min)).intValue(); - map.put("device_code",workorder.getDevice_code()); - if (i == workorders.size()-1){//临时处理:最后全部倒最后一框 - map.put("weight",canuse_qty); - }else { - canuse_qty = canuse_qty.subtract(BigDecimal.valueOf(weight)); - map.put("weight",weight); - } - map.put("qty",min); - map.put("sort",i+1); - taskMap.add(map); - } - SchBaseTask baseTask = packageTask(total, material, taskMap); - if (CollectionUtils.isEmpty(taskMap)){ - throw new BadRequestException("当前任务:"+one.getTask_id()+"没送物料没有可上料的刻字机:"+one.getMaterial_id()); - } - baseTask.setTable_fk_id(one.getTask_id()); - taskService.save(baseTask); - //下发 - JSONObject jo = new JSONObject(); - jo.put("start_point_code", baseTask.getPoint_code1()); - jo.put("task_code", baseTask.getTask_code()); - jo.put("all_weight", new BigDecimal(total)); - String[] to_sort_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"}; - String[] to_devices_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"}; - String[] to_weight_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"}; - for (int i = 0; i < taskMap.size(); i++) { - Map map = taskMap.get(i); - to_sort_array[i] = String.valueOf(map.get("sort")); - to_devices_array[i] = String.valueOf(map.get("device_code")); - to_weight_array[i] = String.valueOf(map.get("weight")); - } - jo.put("to_sort_array", Arrays.stream(to_sort_array).collect(Collectors.joining(","))); - jo.put("to_devices_array",Arrays.stream(to_devices_array).collect(Collectors.joining(","))); - jo.put("to_weight_array", Arrays.stream(to_weight_array).collect(Collectors.joining(","))); - JSONObject result = wms.request(jo, "api/wms/engravingIn"); - if (!result.getString("status").equals("200")){ - throw new BadRequestException(result.getString("message")); - } - return baseTask.getTask_id(); - } - - private SchBaseTask packageTask(Integer canuse_qty, MdMeMaterialbase material, ArrayList taskMap) { - SchBaseTask baseTask = new SchBaseTask(); - baseTask.setMaterial_id(material.getMaterial_id()); - baseTask.setTask_id(IdUtil.getStringId()); - baseTask.setTask_group_id(baseTask.getTask_id()); - baseTask.setTask_code(CodeUtil.getNewCode("TASK_CODE")); - baseTask.setTask_name( AcsTaskEnum.TASK_Engrave_CALL.getDesc()); - baseTask.setTask_type( AcsTaskEnum.TASK_Engrave_CALL.getCode()); - baseTask.setTask_status(StatusEnum.TASK_PUBLISH.getCode()); - baseTask.setPoint_code1("A1_KZ_SL"); - baseTask.setPoint_code3(taskMap.stream().map(a->(String)a.get("device_code")).collect(Collectors.joining(","))); - baseTask.setMaterial_qty(new BigDecimal(canuse_qty)); - baseTask.setQtyArr(JSON.toJSONString(taskMap)); - baseTask.setCreate_id("1"); - baseTask.setCreate_name("acs"); - baseTask.setHandle_class(this.getClass().getName()); - baseTask.setCreate_time(new Date()); - baseTask.setIs_auto_issue(false); - baseTask.setPriority("1"); - return baseTask; - } - - @Override - public void cancel(String task_id) { } - - @Override - public void pointConfirm(JSONObject param) { - } -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/Engrave/EngraveCallService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/Engrave/EngraveCallService.java new file mode 100644 index 00000000..9e60008e --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/Engrave/EngraveCallService.java @@ -0,0 +1,108 @@ +package org.nl.wms.scheduler_manage.service.extendtask.Engrave; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Assert; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.enums.AcsTaskEnum; +import org.nl.common.enums.StatusEnum; +import org.nl.common.enums.WorkerOrderEnum; +import org.nl.common.utils.BaseCode; +import org.nl.common.utils.IdUtil; +import org.nl.common.utils.MapOf; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; +import org.nl.wms.product_manage.service.workorder.dto.PdmProduceWorkorderDto; +import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; +import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; +import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; +import org.nl.wms.storage_manage.IOSEnum; +import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpOutService; +import org.nl.wms.storage_manage.semimanage.service.structIvt.IStIvtStructivtBcpService; +import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp; +import org.slf4j.MDC; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/* + * @author ZZQ "' + * //一体机加一个从入库点到刻字机的搬运任务; + * //一体机加一个刻字机到空框回库 + * //一体机加一个手动打开气缸按钮 + * //一体机加预料上完:上到刻字机14号设备(虚拟设备) + * @Date 2023/6/16 09:21 + */ +@Service +@Slf4j +public class EngraveCallService { + + private static final String ENGRAVE_WORKPRODURE = "1535144682756116480"; + + @Autowired + private IPdmProduceWorkorderService workorderService; + @Autowired + private IStIvtIostorinvBcpOutService stIvtIostorinvBcpOutService; + @Autowired + private ISchBaseTaskService taskService; + @Autowired + private IStIvtStructivtBcpService iStIvtStructivtBcpService; // 半成品库存服务 + + + public void createTask(JSONArray param){ + // [{"device_code":"A1_KZ_06","weight":"27160.500"},{"device_code":"A1_KZ_04","weight":"27160.500"}] + Assert.notNull(param,"请求参数不能为空"); + String struct_code = null; + List kzDevice= new ArrayList<>(); + Map map = new HashMap<>(); + for (Object o : param) { + JSONObject item = JSONObject.parseObject(JSON.toJSONString(o)); + struct_code = item.getString("struct_code");//货位; + kzDevice.add(item.getString("device_code")); + map.put(item.getString("device_code"),item.getString("weight")); + } + List workorders = workorderService.list(new QueryWrapper() + .eq("workprocedure_id", ENGRAVE_WORKPRODURE) + .in("device_code", kzDevice) + .eq("workorder_status", WorkerOrderEnum.PRODUCTING.getCode())); + if (workorders.size()!=kzDevice.size()){ + throw new BadRequestException("当前刻字工单不在生产状态"); + } + if (workorders.stream().map(PdmProduceWorkorder::getMaterial_id).collect(Collectors.toSet()).size()>1){ + throw new BadRequestException("所选刻字机的物料规格不是同一种"); + } + StIvtStructivtBcp stIvtStructivt = iStIvtStructivtBcpService.getOne(new QueryWrapper() + .eq("struct_code", struct_code)); + if(!workorders.get(0).getMaterial_id().equals(stIvtStructivt.getMaterial_id())){ + throw new BadRequestException("半成品库存物料规格与刻字机工单物料不一致"); + } + List list = taskService.list(new QueryWrapper() + .lt("task_status", StatusEnum.TASK_FINISH.getCode()) + .in("task_type", AcsTaskEnum.TASK_STRUCT_OUT.getCode(),AcsTaskEnum.TASK_Engrave_CALL.getCode(), AcsTaskEnum.TASK_Engrave_EMPTY.getCode())); + if (!CollectionUtils.isEmpty(list)){ + throw new BadRequestException("存在正在执行的刻字上料相关任务:"+list.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(","))); + } + + JSONObject form = new JSONObject(); + form.put("stor_id", IOSEnum.STOR_CODE.code("半成品仓库"));//st_ivt_sectattr紫铜车间-半成品库区 + form.put("sect_id",IOSEnum.SECT_CODE.code("半成品库区")); + form.put("product_code","A1");//车间 + form.put("bill_type","1001");//生产出库 + form.put("material_id",stIvtStructivt.getMaterial_id());//生产出库 + form.put("point_code","A1_KZ_SL");//刻字爬坡倒料点 + form.put("stIvtStructivt",stIvtStructivt);//刻字爬坡倒料点 + form.put("qtyArr",map);//刻字爬坡倒料点 + StIvtStructivtBcp stIvtStructivtBcp = stIvtIostorinvBcpOutService.autoConfirmout(form); + + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/Engrave/EngraveTranSportTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/Engrave/EngraveTranSportTask.java new file mode 100644 index 00000000..28de1244 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/Engrave/EngraveTranSportTask.java @@ -0,0 +1,152 @@ +package org.nl.wms.scheduler_manage.service.extendtask.Engrave; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.nl.common.enums.AcsTaskEnum; +import org.nl.common.enums.StatusEnum; +import org.nl.common.utils.IdUtil; +import org.nl.common.utils.MapOf; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.system.util.CodeUtil; +import org.nl.wms.ext_manage.acs.service.WmsToAcsService; +import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService; +import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; +import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; +import org.nl.wms.product_manage.service.workorder.dto.PdmProduceWorkorderDto; +import org.nl.wms.scheduler_manage.service.extendtask.manage.AbstractAcsTask; +import org.nl.wms.scheduler_manage.service.extendtask.manage.TaskStatusEnum; +import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; +import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; + +/* + * @author ZZQ + * @Date 2023/7/19 20:23 + */ +@Service +@Slf4j +public class EngraveTranSportTask extends AbstractAcsTask { + private static final String ENGRAVE_WORKPRODURE = "1535144682756116480"; + + @Autowired + private ISchBaseTaskService taskService; + @Autowired + private IPdmProduceWorkorderService workorderService; + @Autowired + private IMdMeMaterialbaseService materialbaseService; + @Autowired + private WmsToAcsService wms; + + @Override + public void updateTaskStatus(JSONObject param, String status) { + SchBaseTask taskDao = taskService.getOne(new QueryWrapper() + .eq("task_id",param.getString("task_id"))); + if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { + taskDao.setTask_status(TaskStatusEnum.FINISHED.getCode()); + } + if (status.equals(AcsTaskEnum.STATUS_START.getCode())) { + taskDao.setTask_status(TaskStatusEnum.EXECUTING.getCode()); + } + if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) { + taskDao.setTask_status(TaskStatusEnum.CANCEL.getCode()); + } + taskService.updateById(taskDao); + } + + + @Override + @Transactional + public String createTask(JSONObject param) { + if (!param.getString("status").equals(AcsTaskEnum.STATUS_FINISH.getCode())){ return null; } + SchBaseTask one = taskService.getOne(new QueryWrapper() + .eq("task_id", param.getString("task_id"))); + SchBaseTask current = taskService.getOne(new QueryWrapper() + .eq("task_type", AcsTaskEnum.TASK_Engrave_CALL.getCode()) + .lt("task_status", TaskStatusEnum.FINISHED.getCode())); + try { + if (current!=null){ + throw new BadRequestException("存在正刻字上料任务"+current.getTask_code()+",请先手动完成该任务再强制完成搬运任务"); + } + + MdMeMaterialbase material = materialbaseService.getOne(new QueryWrapper() + .eq("material_id",one.getMaterial_id()) + .eq("is_delete", false)); + Map qtyArr = JSONObject.parseObject(one.getQtyArr(), Map.class); + + SchBaseTask baseTask = packageTask(one.getMaterial_qty().intValue(), material, qtyArr); + baseTask.setTable_fk_id(one.getTask_id()); + //下发 + JSONObject jo = new JSONObject(); + jo.put("start_point_code", baseTask.getPoint_code1()); + jo.put("task_code", baseTask.getTask_code()); + jo.put("all_weight", one.getMaterial_qty().intValue()); + String[] to_sort_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"}; + String[] to_devices_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"}; + String[] to_weight_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"}; + int i=1; + for (Map.Entry entry : qtyArr.entrySet()) { + to_sort_array[i] = String.valueOf(i); + to_devices_array[i] = String.valueOf(entry.getKey()); + to_weight_array[i] = String.valueOf(new BigDecimal(entry.getValue()).intValue()); + i++; + } + jo.put("to_sort_array", Arrays.stream(to_sort_array).collect(Collectors.joining(","))); + jo.put("to_devices_array",Arrays.stream(to_devices_array).collect(Collectors.joining(","))); + jo.put("to_weight_array", Arrays.stream(to_weight_array).collect(Collectors.joining(","))); + JSONObject result = wms.request(jo, "api/wms/engravingIn"); + if (!result.getString("status").equals("200")){ + log.error("刻字上料输送线任务下发异常:{}",result.getString("message")); + throw new BadRequestException(result.getString("message")); + } + taskService.save(baseTask); + return baseTask.getTask_id(); + }catch (Exception ex){ + one.setRemark("输送线任务异常,任务无法完成"+ex.getMessage()); + one.setTask_status(TaskStatusEnum.EXECUTING.getCode()); + one.setTask_step(1); + taskService.updateById(one); + } + return null; + } + + private SchBaseTask packageTask(Integer canuse_qty, MdMeMaterialbase material, Map taskMap) { + SchBaseTask baseTask = new SchBaseTask(); + baseTask.setMaterial_id(material.getMaterial_id()); + baseTask.setTask_id(IdUtil.getStringId()); + baseTask.setTask_group_id(baseTask.getTask_id()); + baseTask.setTask_code(CodeUtil.getNewCode("TASK_CODE")); + baseTask.setTask_name( AcsTaskEnum.TASK_Engrave_CALL.getDesc()); + baseTask.setTask_type( AcsTaskEnum.TASK_Engrave_CALL.getCode()); + baseTask.setTask_status(StatusEnum.TASK_PUBLISH.getCode()); + baseTask.setPoint_code1("A1_KZ_SL"); + baseTask.setPoint_code3(taskMap.entrySet().stream().map(a->a.getKey()).collect(Collectors.joining(","))); + baseTask.setMaterial_qty(new BigDecimal(canuse_qty)); + baseTask.setQtyArr(JSON.toJSONString(taskMap)); + baseTask.setCreate_id("1"); + baseTask.setCreate_name("acs"); + baseTask.setHandle_class(this.getClass().getName()); + baseTask.setCreate_time(new Date()); + baseTask.setIs_auto_issue(false); + baseTask.setPriority("1"); + baseTask.setTask_step(2); + return baseTask; + } + + @Override + public void cancel(String task_id) { } + + @Override + public void pointConfirm(JSONObject param) { + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/PointListener.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/PointListener.java index 1a2d2868..c290e90d 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/PointListener.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/PointListener.java @@ -2,6 +2,7 @@ package org.nl.wms.scheduler_manage.service.extendtask; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.nl.common.enums.AcsTaskEnum; import org.nl.common.enums.StatusEnum; @@ -44,6 +45,7 @@ public class PointListener extends AbstraceListener { task.put("material_id", extParam.get("material_id")); task.put("material_qty", extParam.get("material_qty")); task.put("table_fk_id", extParam.get("table_fk_id")); + task.put("qtyArr", JSON.toJSONString(extParam.get("qtyArr"))); } task.put("is_delete", StatusEnum.LOCK_OFF.getCode()); task.put("create_id", SecurityUtils.getCurrentUserId()); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/wash/WashCallEmptyTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/wash/WashCallEmptyTask.java index 8a911847..4d015fea 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/wash/WashCallEmptyTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/wash/WashCallEmptyTask.java @@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import org.nl.common.enums.AcsTaskEnum; import org.nl.common.enums.StatusEnum; @@ -122,22 +123,21 @@ public class WashCallEmptyTask extends AbstractAcsTask { taskService.save(schBaseTask); // 找终点 try { - RedissonUtils.lock(() -> { - pointConfirm(task); - JSONArray data = new JSONArray(); - data.add(task); - // 下发 - Map stringObjectMap = wms.issueTaskToAcs(data); - - }, "bcpcallemp", 2); + pointConfirm(task); + JSONArray data = new JSONArray(); + data.add(task); + // 下发 + wms.issueTaskToAcs(data); } catch (Exception ex) { - structattrService.update( - new UpdateWrapper().lambda() - .set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) - .set(StIvtStructattr::getTask_code, "") - .eq(StIvtStructattr::getStruct_code, task.getString("point_code1")) - ); - log.error("刻字请求异常,error:{}",ex); + if (StringUtils.isNotEmpty(task.getString("point_code1"))){ + structattrService.update( + new UpdateWrapper().lambda() + .set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) + .set(StIvtStructattr::getTask_code, "") + .eq(StIvtStructattr::getStruct_code, task.getString("point_code1")) + ); + } + log.error("清洗空框请求异常,error:{}",ex); schBaseTask.setRemark(ex.getMessage()); schBaseTask.setUpdate_time(new Date()); schBaseTask.setUpdate_name("acs"); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java index a85d0367..dcc8bbe3 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java @@ -141,6 +141,10 @@ public class SchBasePointServiceImpl extends ServiceImpl list = taskService.list(new QueryWrapper() - .lt("task_status", StatusEnum.TASK_FINISH.getCode()) - .in("task_type", AcsTaskEnum.TASK_STRUCT_OUT.getCode(),AcsTaskEnum.TASK_Engrave_CALL.getCode(), AcsTaskEnum.TASK_Engrave_EMPTY.getCode())); - if (!CollectionUtils.isEmpty(list)){ - return; - } - List workorders= workorderService.getOrderByDevLimit(MapOf.of("workprocedure_id", ENGRAVE_WORKPRODURE)); - if (CollectionUtils.isEmpty(workorders)){ - return; - } - JSONObject form = new JSONObject(); - form.put("stor_id","15286279952695336962");//st_ivt_sectattr紫铜车间-半成品库区 - form.put("sect_id","1528631044482404352"); - form.put("product_code","A1");//车间 - form.put("bitt_type","1001");//生产出库 - form.put("point_code","A1_KZ_SL");//刻字爬坡倒料点 - try { - for (PdmProduceWorkorderDto workorder : workorders) { - form.put("material_id",workorder.getMaterial_id()); - StIvtStructivtBcp stIvtStructivtBcp = stIvtIostorinvBcpOutService.autoConfirmout(form); - if (stIvtStructivtBcp!=null){ - return; - } - } - }catch (Exception ex){ - log.warn("定时任务——半成品上料异常:{}",ex); - } - } -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/impl/SchBaseTaskServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/impl/SchBaseTaskServiceImpl.java index ba0c3560..636ef24e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/impl/SchBaseTaskServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/impl/SchBaseTaskServiceImpl.java @@ -12,6 +12,7 @@ import org.nl.common.enums.AcsTaskEnum; import org.nl.common.enums.StatusEnum; import org.nl.common.utils.IdUtil; import org.nl.common.utils.MapOf; +import org.nl.common.utils.RedissonUtils; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; @@ -56,7 +57,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl queryAll(Map query) { if (query.get("task_status") != null && ((String)query.get("task_status")).contains("-1")){ - query.put("task_status",((String)query.get("task_status")).replaceAll("-1","1,4,5")); + query.put("task_status",((String)query.get("task_status")).replaceAll("-1","1,2,3,4,5,6")); } List maps = this.baseMapper.queryAll(query); return maps; @@ -66,84 +67,86 @@ public class SchBaseTaskServiceImpl extends ServiceImpl map) { WmsToAcsServiceImpl wms = new WmsToAcsServiceImpl(); String task_id = MapUtil.getStr(map, "task_id"); - String method_name = MapUtil.getStr(map, "method_name"); - SchBaseTask taskObj = this.getOne(new QueryWrapper().eq("task_id", task_id)); - switch (method_name) { // forceFinish, cancel - case "immediateNotifyAcs": - if (Integer.valueOf(taskObj.getTask_status()){ + String method_name = MapUtil.getStr(map, "method_name"); + SchBaseTask taskObj = this.getOne(new QueryWrapper().eq("task_id", task_id)); + switch (method_name) { // forceFinish, cancel + case "immediateNotifyAcs": + if (Integer.valueOf(taskObj.getTask_status())().eq("task_id", task_id)); + JSONArray array = new JSONArray(); + array.add(JSON.toJSON(task)); + Map result = wms.issueTaskToAcs(array); + String status = String.valueOf(result.get("status")); + if (!status.equals("200")) { + throw new BadRequestException(result.get("message") != null ? String.valueOf(result.get("message")) : "acs反馈异常"); + } + this.update(new UpdateWrapper() + .set("task_status",StatusEnum.TASK_PUBLISH.getCode()) + .eq("task_id",task_id)); + }catch (Exception ex){ + taskObj.setTask_status(StatusEnum.TASK_START_ERROR.getCode()); + taskObj.setRemark(ex.getMessage()); + taskObj.setUpdate_time(new Date()); + if (StringUtils.isNotEmpty(taskObj.getPoint_code1())|| StringUtils.isNotEmpty(taskObj.getPoint_code2())){ + pointService.update(new UpdateWrapper() + .set("lock_type",StatusEnum.LOCK_OFF.getCode()) + .in("point_code",taskObj.getPoint_code1(),taskObj.getPoint_code2())); + } + this.updateById(taskObj); } - SchBaseTask task = this.getOne(new QueryWrapper().eq("task_id", task_id)); - JSONArray array = new JSONArray(); - array.add(JSON.toJSON(task)); - Map result = wms.issueTaskToAcs(array); - String status = String.valueOf(result.get("status")); - if (!status.equals("200")) { - throw new BadRequestException(result.get("message") != null ? String.valueOf(result.get("message")) : "acs反馈异常"); - } - this.update(new UpdateWrapper() - .set("task_status",StatusEnum.TASK_PUBLISH.getCode()) - .eq("task_id",task_id)); - }catch (Exception ex){ - taskObj.setTask_status(StatusEnum.TASK_START_ERROR.getCode()); - taskObj.setRemark(ex.getMessage()); - taskObj.setUpdate_time(new Date()); - if (StringUtils.isNotEmpty(taskObj.getPoint_code1())|| StringUtils.isNotEmpty(taskObj.getPoint_code2())){ - pointService.update(new UpdateWrapper() - .set("lock_type",StatusEnum.LOCK_OFF.getCode()) - .in("point_code",taskObj.getPoint_code1(),taskObj.getPoint_code2())); - } - this.updateById(taskObj); } - } - break; - case "forceFinish": - JSONArray finish = new JSONArray(); - JSONObject res = new JSONObject(); - res.put("task_id", task_id); - res.put("status", AcsTaskEnum.STATUS_FINISH.getCode()); - res.put("finished_type", AcsTaskEnum.MANUAL_TASK_FINISHED_TYPE.getCode()); // 手动完成 - finish.add(res); - acsToWmsService.receiveTaskStatusAcs(JSON.toJSONString(finish)); - this.update(new UpdateWrapper() - .set("task_status",StatusEnum.TASK_FINISH.getCode()) - .eq("task_id", task_id)); - break; - case "cancel": - if (taskObj.getTask_status().equals(StatusEnum.TASK_RUNNING.getCode())||taskObj.getTask_status().equals(StatusEnum.TASK_PUBLISH.getCode())){ - JSONArray cancel = new JSONArray(); - JSONObject res2 = new JSONObject(); - res2.put("task_id", task_id); - res2.put("status", AcsTaskEnum.STATUS_CANNEL.getCode()); - cancel.add(res2); - acsToWmsService.receiveTaskStatusAcs(JSON.toJSONString(cancel)); - }else { - WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); - taskTable.update(MapOf.of("task_status",StatusEnum.TASK_CANNEL.getCode()),"task_id = '"+task_id+"'"); - } - - break; - case "delete": - SchBaseTask one = getOne(new QueryWrapper().eq("task_id", task_id)); - int status = Integer.valueOf(one.getTask_status()); - //判断如果在3个状态之内,更新操作 - int tag = 1 << StatusEnum.TASK_CANNEL.getBit() - | 1 << StatusEnum.TASK_CREATE.getBit() - | 1 << StatusEnum.TASK_START_ERROR.getBit() - | 1 << StatusEnum.TASK_START_END_P.getBit(); - if ((tag &~ 1 << status) != tag){ + break; + case "forceFinish": + JSONArray finish = new JSONArray(); + JSONObject res = new JSONObject(); + res.put("task_id", task_id); + res.put("status", AcsTaskEnum.STATUS_FINISH.getCode()); + res.put("finished_type", AcsTaskEnum.MANUAL_TASK_FINISHED_TYPE.getCode()); // 手动完成 + finish.add(res); this.update(new UpdateWrapper() - .set("is_delete",true) + .set("task_status",StatusEnum.TASK_FINISH.getCode()) .eq("task_id", task_id)); - }else { - throw new BadRequestException("任务已经下发不允许直接删除"); - } - break; - default: break; - } + acsToWmsService.receiveTaskStatusAcs(JSON.toJSONString(finish)); + break; + case "cancel": + if (taskObj.getTask_status().equals(StatusEnum.TASK_RUNNING.getCode())||taskObj.getTask_status().equals(StatusEnum.TASK_PUBLISH.getCode())){ + JSONArray cancel = new JSONArray(); + JSONObject res2 = new JSONObject(); + res2.put("task_id", task_id); + res2.put("status", AcsTaskEnum.STATUS_CANNEL.getCode()); + cancel.add(res2); + acsToWmsService.receiveTaskStatusAcs(JSON.toJSONString(cancel)); + }else { + WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); + taskTable.update(MapOf.of("task_status",StatusEnum.TASK_CANNEL.getCode()),"task_id = '"+task_id+"'"); + } + + break; + case "delete": + SchBaseTask one = getOne(new QueryWrapper().eq("task_id", task_id)); + int status = Integer.valueOf(one.getTask_status()); + //判断如果在3个状态之内,更新操作 + int tag = 1 << StatusEnum.TASK_CANNEL.getBit() + | 1 << StatusEnum.TASK_CREATE.getBit() + | 1 << StatusEnum.TASK_START_ERROR.getBit() + | 1 << StatusEnum.TASK_START_END_P.getBit(); + if ((tag &~ 1 << status) != tag){ + this.update(new UpdateWrapper() + .set("is_delete",true) + .eq("task_id", task_id)); + }else { + throw new BadRequestException("任务已经下发不允许直接删除"); + } + break; + default: break; + } + },task_id,null); } @Override diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/IOSEnum.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/IOSEnum.java index eeabc0cb..c7d615e7 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/IOSEnum.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/IOSEnum.java @@ -21,6 +21,8 @@ public enum IOSEnum { IS_USED(MapOf.of("是", "1", "否", "0")), //仓库编码 STOR_CODE(MapOf.of("原材料仓", "1528627964823080960", "半成品仓库", "15286279952695336962","成品库", "1528627995269533696")), + //库区编码 + SECT_CODE(MapOf.of("成品库区", "1528631043496742912", "半成品库区", "1528631044482404352")), //托盘超限类型 VEHICLE_OVER_TYPE(MapOf.of("标准", "00", "横向超", "01","纵向超","02")), //单据类型 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStBcpInServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStBcpInServiceImpl.java index a860b6f9..b995ffa9 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStBcpInServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStBcpInServiceImpl.java @@ -213,7 +213,7 @@ public class PdaStBcpInServiceImpl implements PdaStBcpInService { // 反馈 result.put("message", "下发成功"); - }, "bcpcallemp", null); + }, AcsTaskEnum.REQUEST_WARP_SEND_EMP.getCode(), null); return result; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStCpInServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStCpInServiceImpl.java index a5e53994..cebf03b5 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStCpInServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStCpInServiceImpl.java @@ -126,7 +126,7 @@ public class PdaStCpInServiceImpl implements PdaStCpInService { public JSONObject getMaterial(JSONObject whereJson) { List list = iMpsSaleOrderService.getPdaMaterial(whereJson); for (Map map : list) { - map.put("create_time",DateUtil.date((Date) map.get("plandeliver_date")).toString()); + map.put("create_time",map.get("plandeliver_date")); } JSONObject result = new JSONObject(); result.put("data", JSONArray.parseArray(JSON.toJSONString(list))); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/TASKEnum.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/TASKEnum.java index f782fb0a..d3b931d4 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/TASKEnum.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/TASKEnum.java @@ -5,13 +5,12 @@ import lombok.AllArgsConstructor; import lombok.Getter; import org.nl.common.enums.AcsTaskEnum; import org.nl.modules.wql.util.SpringContextHolder; -import org.nl.wms.scheduler_manage.service.extendtask.Engrave.EngraveCallMaterialTask; +import org.nl.wms.scheduler_manage.service.extendtask.Engrave.EngraveTranSportTask; import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; import org.nl.wms.storage_manage.pda.service.PdaStBcpInService; import org.nl.wms.storage_manage.productmanage.service.check.IStIvtCheckmstCpService; import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpOutService; import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpService; -import org.nl.wms.storage_manage.rawmanage.service.check.IStIvtCheckmstYlService; import org.nl.wms.storage_manage.semimanage.service.check.IStIvtCheckmstBcpService; import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpOutService; import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpService; @@ -32,7 +31,7 @@ public enum TASKEnum implements FunctionStrategy { bean.taskOperate(form); }), OUT_TASK_CAll(type -> AcsTaskEnum.TASK_STRUCT_OUT.getCode().equals(type), form -> { - EngraveCallMaterialTask bean = SpringContextHolder.getBean(EngraveCallMaterialTask.class); + EngraveTranSportTask bean = SpringContextHolder.getBean(EngraveTranSportTask.class); bean.createTask(form); }), CHECK_TASK(type -> AcsTaskEnum.TASK_STRUCT_CHECK.getCode().equals(type), form -> { diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/controller/structLvt/StIvtStructivtBcpController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/controller/structLvt/StIvtStructivtBcpController.java index 971dba3e..b9ee55c3 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/controller/structLvt/StIvtStructivtBcpController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/controller/structLvt/StIvtStructivtBcpController.java @@ -48,6 +48,13 @@ public class StIvtStructivtBcpController { public ResponseEntity query(StructIvtBcpQuery query, PageQuery page) { return new ResponseEntity<>(bcpService.packageQuery(query,page), HttpStatus.OK); } + @PostMapping("/bypda") + @Log("半成品库存查询") + //("半成品库存查询") + public ResponseEntity bypdaQuery(@RequestBody PageQuery query) { + query.setPage(0); + return new ResponseEntity<>(bcpService.packageQuery(new StructIvtBcpQuery(),query), HttpStatus.OK); + } @GetMapping("/getBcpIvt") @Log("查询可用的半成品库存") diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpOutServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpOutServiceImpl.java index 7df1b0d8..6bc08839 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpOutServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpOutServiceImpl.java @@ -296,66 +296,72 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl().eq("stor_id", form.getString("stor_id"))); - mst.setStor_id(stor.getStor_id()); - mst.setStor_code(stor.getStor_code()); - mst.setStor_name(stor.getStor_name()); - StIvtSectattr sect = sectattrService.getById(form.getString("sect_id")); - mst.setSect_code(sect.getSect_code()); - mst.setSect_id(sect.getSect_id()); - mst.setSect_name(sect.getSect_name()); - mst.setStruct_id(stIvtStructivtBcp.getStruct_id()); - mst.setStruct_code(stIvtStructivtBcp.getStruct_code()); - mst.setStruct_name(stIvtStructivtBcp.getStruct_name()); - } - mst.setCreate_id("1"); - mst.setCreate_name("acs"); - mst.setCreate_time(DateUtil.now()); - PointEvent event = PointEvent.builder() - .type(AcsTaskEnum.TASK_STRUCT_OUT) - .point_code1(stIvtStructivtBcp.getStruct_code()) - .point_code3(mst.getPoint_code()) - .acs_task_type(AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode()) - .task_group_id(IdUtil.getStringId()) - .extParam(MapOf.of("material_qty",stIvtStructivtBcp.getCanuse_qty(), - "material_id",stIvtStructivtBcp.getMaterial_id())) - .vehicle_code(mst.getStoragevehicle_code()) - .product_area(mst.getWorkshop_id()) - .callback((Consumer) mst::setTask_id) - .build(); - BussEventMulticaster.Publish(event); - mst.setWork_status(IOSEnum.WORK_STATUS.code("生成")); - mst.setBill_status(IOSEnum.BILL_STATUS.code("分配完")); - this.save(mst); - this.lockStruct(stIvtStructivtBcp.getStruct_code(), "出库锁", mst.getTask_id()); - sendTask(mst.getTask_id()); - } - return stIvtStructivtBcp; - }, form.getString("material_id"), 1); + StIvtStructivtBcp stIvtStructivtBcp; + if (form.get("stIvtStructivt")==null){ + stIvtStructivtBcp = divRuleCpService.divRuleOutBcp(param); + }else { + stIvtStructivtBcp=(StIvtStructivtBcp)form.get("stIvtStructivt"); + } + if ((stIvtStructivtBcp == null)){ + throw new BadRequestException("无可用货位"); + } + StIvtIostorinvBcp mst = new StIvtIostorinvBcp(); + mst.setIostorinv_id(IdUtil.getStringId()); + mst.setBill_code(CodeUtil.getNewCode("IO_CODE")); + mst.setBiz_date(form.getString("biz_date")); + mst.setBill_type(form.getString("bill_type")); + mst.setIo_type(IOSEnum.IO_TYPE.code("出库")); + mst.setBill_status(IOSEnum.BILL_STATUS.code("生成")); + mst.setRemark(form.getString("remark")); + mst.setWorkshop_id(form.getString("product_code")); + mst.setPoint_code(form.getString("point_code")); + mst.setMaterial_id(material.getMaterial_id()); + mst.setPcsn(StringUtils.isNotEmpty(form.getString("pcsn")) ? form.getString("pcsn") : DateUtil.today()); + mst.setPlan_qty(stIvtStructivtBcp.getCanuse_qty()); + mst.setQuality_scode(stIvtStructivtBcp.getQuality_scode()); + mst.setQty_unit_id(stIvtStructivtBcp.getQty_unit_id()); + mst.setBase_bill_code(""); + mst.setQty_unit_name(" "); + mst.setUnit_weight(material.getNet_weight()); + mst.setStoragevehicle_code(" "); + mst.setStoragevehicle_id(" "); + 仓库数据: + { + StIvtBsrealstorattr stor = storattrService.getOne(new QueryWrapper().eq("stor_id", form.getString("stor_id"))); + mst.setStor_id(stor.getStor_id()); + mst.setStor_code(stor.getStor_code()); + mst.setStor_name(stor.getStor_name()); + StIvtSectattr sect = sectattrService.getById(form.getString("sect_id")); + mst.setSect_code(sect.getSect_code()); + mst.setSect_id(sect.getSect_id()); + mst.setSect_name(sect.getSect_name()); + mst.setStruct_id(stIvtStructivtBcp.getStruct_id()); + mst.setStruct_code(stIvtStructivtBcp.getStruct_code()); + mst.setStruct_name(stIvtStructivtBcp.getStruct_name()); + } + mst.setCreate_id("1"); + mst.setCreate_name("acs"); + mst.setCreate_time(DateUtil.now()); + PointEvent event = PointEvent.builder() + .type(AcsTaskEnum.TASK_STRUCT_OUT) + .point_code1(stIvtStructivtBcp.getStruct_code()) + .point_code3(mst.getPoint_code()) + .acs_task_type(AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode()) + .task_group_id(IdUtil.getStringId()) + .extParam(MapOf.of("material_qty",stIvtStructivtBcp.getCanuse_qty(), + "material_id",stIvtStructivtBcp.getMaterial_id(),"qtyArr",form.get("qtyArr"))) + .vehicle_code(mst.getStoragevehicle_code()) + .product_area(mst.getWorkshop_id()) + .callback((Consumer) mst::setTask_id) + .build(); + BussEventMulticaster.Publish(event); + mst.setWork_status(IOSEnum.WORK_STATUS.code("生成")); + mst.setBill_status(IOSEnum.BILL_STATUS.code("分配完")); + this.save(mst); + this.lockStruct(stIvtStructivtBcp.getStruct_code(), "出库锁", mst.getTask_id()); + sendTask(mst.getTask_id()); + return stIvtStructivtBcp; + }, form.getString("material_id"), 1); return bcpStruct; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpServiceImpl.java index 11e004b3..207f3641 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpServiceImpl.java @@ -380,12 +380,13 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id)); if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { - //完成 - this.update(new UpdateWrapper().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id) - .set(StIvtIostorinvBcp::getWork_status, IOSEnum.WORK_STATUS.code("完成"))); - JSONObject mst_jo = new JSONObject(); - mst_jo.put("iostorinv_id", mst.getIostorinv_id()); - this.confirm(mst_jo); + if (mst!=null || !mst.getBill_status().equals(IOSEnum.BILL_STATUS.code("完成"))){ + this.update(new UpdateWrapper().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id) + .set(StIvtIostorinvBcp::getWork_status, IOSEnum.WORK_STATUS.code("完成"))); + JSONObject mst_jo = new JSONObject(); + mst_jo.put("iostorinv_id", mst.getIostorinv_id()); + this.confirm(mst_jo); + } } else if (status.equals(AcsTaskEnum.STATUS_START.getCode())){ //执行中 this.update(new UpdateWrapper().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id) diff --git a/mes/hd/nladmin-system/src/main/resources/ 成品初始化.sql b/mes/hd/nladmin-system/src/main/resources/ 成品初始化.sql new file mode 100644 index 00000000..667de25e --- /dev/null +++ b/mes/hd/nladmin-system/src/main/resources/ 成品初始化.sql @@ -0,0 +1,10 @@ +update st_ivt_structattr + set is_used = false,lock_type = false,is_emptyvehicle = false,storagevehicle_code = '',storagevehicle_qty = null,inv_id = null,inv_code = null,inv_type = null +where stor_id='1528627995269533696'and sect_id='1528631043496742912'; -- 更新成品库仓位为禁用状态 -- +delete from st_ivt_structivt_cp; -- 库存表 -- +delete from st_ivt_iostorinv_cp; -- 出入单主表 -- +delete from st_ivt_iostorinvdtl_cp; -- 出入库明细表 -- +delete from st_ivt_iostorinvdis_cp; -- 出入库分配表 -- +delete from st_ivt_iostorinvdisdtl_cp; -- 出入库分配明细表 -- +delete from md_pb_bucketrecord; -- 箱记录表 -- +delete from st_ivt_structivtflow_cp; -- 成品库存变动记录表 -- diff --git a/mes/qd/src/views/wms/device_manage/deviceMaterial/index.vue b/mes/qd/src/views/wms/device_manage/deviceMaterial/index.vue index ee91c74e..8b29ae1b 100644 --- a/mes/qd/src/views/wms/device_manage/deviceMaterial/index.vue +++ b/mes/qd/src/views/wms/device_manage/deviceMaterial/index.vue @@ -176,7 +176,7 @@ export default { { key: true, display_name: '启用' }, { key: false, display_name: '禁用' } ], - materType: '', + materType: '01', materialShow: false, pointMVisible: false, materialForm: {}, diff --git a/mes/qd/src/views/wms/masterdata_manage/master/material/index.vue b/mes/qd/src/views/wms/masterdata_manage/master/material/index.vue index 56043788..c229e6a7 100644 --- a/mes/qd/src/views/wms/masterdata_manage/master/material/index.vue +++ b/mes/qd/src/views/wms/masterdata_manage/master/material/index.vue @@ -127,8 +127,11 @@ - - + @@ -153,6 +156,7 @@ + @@ -315,6 +317,9 @@ export default { this.classes1 = data }) }, + format_isOrNot(row, column, value) { + return value === true ? '是' : '否' + }, initClass2() { const param = { parent_class_code: '09' @@ -393,29 +398,29 @@ export default { }, // 改变状态 changeEnabled(data, val) { - this.$confirm('此操作将 "' + this.dict.label.is_used[val] + '" ' + data.material_name + ', 是否继续?', '提示', { + this.$confirm('此操作将修改' + data.material_name + '状态, 是否继续?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { crudMaterialbase.edit(data).then(res => { - this.crud.notify(this.dict.label.is_used[val] + '成功', CRUD.NOTIFICATION_TYPE.SUCCESS) + this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS) }).catch(() => { - if (data.is_used === '0') { - data.is_used = '1' + if (data.is_used === false) { + data.is_used = true return } - if (data.is_used === '1') { - data.is_used = '0' + if (data.is_used === true) { + data.is_used = false } }) }).catch(() => { - if (data.is_used === '0') { - data.is_used = '1' + if (data.is_used === false) { + data.is_used = true return } - if (data.is_used === '1') { - data.is_used = '0' + if (data.is_used === true) { + data.is_used = false } }) }, diff --git a/mes/qd/src/views/wms/masterdata_manage/master/semirealrawmaterial/index.vue b/mes/qd/src/views/wms/masterdata_manage/master/semirealrawmaterial/index.vue index c1b19b1d..0b4ee0d5 100644 --- a/mes/qd/src/views/wms/masterdata_manage/master/semirealrawmaterial/index.vue +++ b/mes/qd/src/views/wms/masterdata_manage/master/semirealrawmaterial/index.vue @@ -188,7 +188,6 @@ export default { }, getWorkprocedure() { // 获取工序下拉框 crudDevice.getWorkprocedure().then(res => { - console.log(res) this.workList = res }) }, diff --git a/mes/qd/src/views/wms/product_manage/workorder/index.vue b/mes/qd/src/views/wms/product_manage/workorder/index.vue index de2d4731..b40b8326 100644 --- a/mes/qd/src/views/wms/product_manage/workorder/index.vue +++ b/mes/qd/src/views/wms/product_manage/workorder/index.vue @@ -51,6 +51,16 @@ class="filter-item" /> + + + + + - - - + + + + + + + + + +