diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java index 4bd686fc..d13be8a5 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java @@ -76,8 +76,8 @@ public enum AcsTaskEnum { JSONArray res = new JSONArray(); task.forEach(t -> { JSONObject taskEnum = new JSONObject(); - taskEnum.put("name", t.getDesc()); - taskEnum.put("code", t.getCode()); + taskEnum.put("text", t.getDesc()); + taskEnum.put("value", t.getCode()); res.add(taskEnum); }); return res; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/rest/ProduceshiftorderController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/rest/ProduceshiftorderController.java index 9b96dc7c..fb4ead4a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/rest/ProduceshiftorderController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/rest/ProduceshiftorderController.java @@ -1,24 +1,21 @@ package org.nl.wms.mps.rest; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; +import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; - import lombok.RequiredArgsConstructor; +import lombok.RequiredArgsConstructor; import org.nl.common.anno.Log; import lombok.extern.slf4j.Slf4j; +import org.nl.common.utils.api.ResultCode; +import org.nl.modules.common.exception.BizCoreException; import org.nl.wms.mps.service.ProduceshiftorderService; -import org.nl.wms.mps.service.dto.ProduceshiftorderDto; +import org.nl.wms.mps.service.dto.DeviceDto; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; @@ -30,81 +27,94 @@ import java.util.Map; @RequiredArgsConstructor @Api(tags = "一体机工单管理") @RequestMapping("/api/produceshiftorder") +@SaIgnore @Slf4j -public class ProduceshiftorderController { +public class ProduceshiftorderController{ + private final ProduceshiftorderService produceshiftorderService; - private final ProduceshiftorderService produceshiftorderService; + @PostMapping("/getDevice") + @Log("根据登录用户设备下拉") + @ApiOperation("根据登录用户设备下拉") + public ResponseEntity getDevice(@RequestBody JSONObject param) { + return new ResponseEntity<>(produceshiftorderService.getDevice(param), HttpStatus.OK); + } + @PostMapping("/getTable") + @Log("获取工单生产记录") + @ApiOperation("获取工单生产记录") + //@PreAuthorize("@el.check('produceshiftorder:list')") + public ResponseEntity getTable(@RequestBody JSONObject param) { + return new ResponseEntity<>(produceshiftorderService.getTable(param), HttpStatus.OK); + } - @PostMapping("/getDevice") - @Log("根据登录用户设备下拉") - @ApiOperation("根据登录用户设备下拉") - //@PreAuthorize("@el.check('produceshiftorder:list')") - public ResponseEntity getDevice(@RequestBody JSONObject param) { - return new ResponseEntity<>(produceshiftorderService.getDevice(param), HttpStatus.OK); - } + @PostMapping("/getDeviceList") + @Log("一体机-根据登录人信息获取设备列表") + @ApiOperation("一体机-根据登录人信息获取设备列表") + public ResponseEntity> getDeviceList(@RequestBody JSONObject form) { + log.info("海亮一体机服务 [根据登录人信息获取设备列表] 接口被请求"); + return new ResponseEntity<>(produceshiftorderService.getDeviceList(form.getString("search_bar")), HttpStatus.OK); + } - @PostMapping("/getTable") - @Log("获取工单生产记录") - @ApiOperation("获取工单生产记录") - //@PreAuthorize("@el.check('produceshiftorder:list')") - public ResponseEntity getTable(@RequestBody JSONObject param) { - return new ResponseEntity<>(produceshiftorderService.getTable(param), HttpStatus.OK); - } + @PostMapping("/getOrderList") + @Log("一体机-工单管理列表") + @ApiOperation("一体机-工单管理列表") + public ResponseEntity getOrderList(@RequestBody Map param, Pageable page) { + log.info("海亮一体机服务 [工单管理列表] 接口被请求, 请求参数-{}", param); + if(null == param) { + throw new BizCoreException(ResultCode.VALIDATE_FAILED); + } + return new ResponseEntity<>(produceshiftorderService.getOrderList(param, page), HttpStatus.OK); + } - @PostMapping("/openStart") - @Log("看板开工") - @ApiOperation("看板开工") - //@PreAuthorize("@el.check('produceshiftorder:list')") - public ResponseEntity openStart(@RequestBody JSONObject param) { - produceshiftorderService.openStart(param); - return new ResponseEntity<>(HttpStatus.OK); - } + @PostMapping("/openStart") + @Log("看板开工") + @ApiOperation("看板开工") + public ResponseEntity openStart(@RequestBody JSONObject param) { + return new ResponseEntity<>(produceshiftorderService.openStart(param), HttpStatus.OK); + } - @PostMapping("/saveReport") - @Log("看板报工") - @ApiOperation("看板报工") - public ResponseEntity saveReport(@RequestBody JSONObject param) { - produceshiftorderService.saveReport(param); - return new ResponseEntity<>(HttpStatus.OK); - } + @PostMapping("/saveReport") + @Log("看板报工") + @ApiOperation("看板报工") + public ResponseEntity saveReport(@RequestBody JSONObject param) { + return new ResponseEntity<>(produceshiftorderService.saveReport(param), HttpStatus.OK); + } - @PostMapping("/finish") - @Log("看板强制完成") - @ApiOperation("看板强制完成") - public ResponseEntity finish(@RequestBody JSONObject param) { - produceshiftorderService.finish(param); - return new ResponseEntity<>(HttpStatus.OK); - } + @PostMapping("/finish") + @Log("看板强制完成") + @ApiOperation("看板强制完成") + public ResponseEntity finish(@RequestBody JSONObject param) { + return new ResponseEntity<>(produceshiftorderService.finish(param), HttpStatus.OK); + } - @PostMapping("/getReportWork") - @Log("获取当前报工记录") - @ApiOperation("获取当前报工记录") - //@PreAuthorize("@el.check('produceshiftorder:list')") - public ResponseEntity getReportWork(@RequestBody JSONObject param) { - return new ResponseEntity<>(produceshiftorderService.getReportWork(param), HttpStatus.OK); - } + @PostMapping("/getReportWork") + @Log("获取当前报工记录") + @ApiOperation("获取当前报工记录") + //@PreAuthorize("@el.check('produceshiftorder:list')") + public ResponseEntity getReportWork(@RequestBody JSONObject param) { + return new ResponseEntity<>(produceshiftorderService.getReportWork(param), HttpStatus.OK); + } - @PostMapping("/getNotWorkDeviceByWorkproceduceId") - @Log("根据工序查询没有工单的设备") - @ApiOperation("根据工序查询没有工单的设备") - //@PreAuthorize("@el.check('WorkProcedure:add')") - public ResponseEntity getNotWorkDeviceByWorkproceduceId(@RequestBody JSONObject param) { - return new ResponseEntity<>(produceshiftorderService.getNotWorkDeviceByWorkproceduceId(param),HttpStatus.CREATED); - } + @PostMapping("/getNotWorkDeviceByWorkproceduceId") + @Log("根据工序查询没有工单的设备") + @ApiOperation("根据工序查询没有工单的设备") + //@PreAuthorize("@el.check('WorkProcedure:add')") + public ResponseEntity getNotWorkDeviceByWorkproceduceId(@RequestBody JSONObject param) { + return new ResponseEntity<>(produceshiftorderService.getNotWorkDeviceByWorkproceduceId(param), HttpStatus.CREATED); + } - @PostMapping("/replaceDevice") - @Log("更换工单设备") - @ApiOperation("更换工单设备") - public ResponseEntity replaceDevice(@RequestBody JSONObject param) { - produceshiftorderService.replaceDevice(param); - return new ResponseEntity<>( HttpStatus.OK); - } + @PostMapping("/replaceDevice") + @Log("更换工单设备") + @ApiOperation("更换工单设备") + public ResponseEntity replaceDevice(@RequestBody JSONObject param) { + produceshiftorderService.replaceDevice(param); + return new ResponseEntity<>(HttpStatus.OK); + } - @GetMapping("/getUser") - @Log("查询操作人员") - @ApiOperation("查询操作人员") - public ResponseEntity getUser() { - return new ResponseEntity<>(produceshiftorderService.getUser(), HttpStatus.OK); - } + @GetMapping("/getUser") + @Log("查询操作人员") + @ApiOperation("查询操作人员") + public ResponseEntity getUser() { + return new ResponseEntity<>(produceshiftorderService.getUser(), HttpStatus.OK); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/ProduceshiftorderService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/ProduceshiftorderService.java index 5ccecca3..a0a482ae 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/ProduceshiftorderService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/ProduceshiftorderService.java @@ -2,7 +2,9 @@ package org.nl.wms.mps.service; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import org.nl.common.utils.api.CommonResult; import org.nl.system.service.user.dao.SysUser; +import org.nl.wms.mps.service.dto.DeviceDto; import org.nl.wms.mps.service.dto.ProduceshiftorderDto; import org.springframework.data.domain.Pageable; import org.springframework.web.multipart.MultipartFile; @@ -12,133 +14,167 @@ import java.util.List; import java.util.Map; /** -* @description 服务接口 -* @author qinx -* @date 2022-05-24 -**/ -public interface ProduceshiftorderService { + * @author qinx + * @description 服务接口 + * @date 2022-05-24 + **/ +public interface ProduceshiftorderService{ + /** + * 查询数据分页 + * + * @param whereJson 条件 + * @param page 分页参数 + * @return Map + */ + Map queryAll(Map whereJson, Pageable page); - /** - * 查询数据分页 - * @param whereJson 条件 - * @param page 分页参数 - * @return Map - */ - Map queryAll(Map whereJson, Pageable page); + /** + * 查询所有数据不分页 + * + * @param whereJson 条件参数 + * @return List + */ + List queryAll(Map whereJson); - /** - * 查询所有数据不分页 - * @param whereJson 条件参数 - * @return List - */ - List queryAll(Map whereJson); + /** + * 根据ID查询 + * + * @param produceorder_id ID + * @return Produceshiftorder + */ + ProduceshiftorderDto findById(Long produceorder_id); - /** - * 根据ID查询 - * @param produceorder_id ID - * @return Produceshiftorder - */ - ProduceshiftorderDto findById(Long produceorder_id); + /** + * 根据编码查询 + * + * @param code code + * @return Produceshiftorder + */ + ProduceshiftorderDto findByCode(String code); - /** - * 根据编码查询 - * @param code code - * @return Produceshiftorder - */ - ProduceshiftorderDto findByCode(String code); + /** + * 创建 + * + * @param dto / + */ + void create(ProduceshiftorderDto dto); + /** + * 编辑 + * + * @param dto / + */ + void update(ProduceshiftorderDto dto); - /** - * 创建 - * @param dto / - */ - void create(ProduceshiftorderDto dto); + /** + * 多选删除 + * + * @param ids / + */ + void deleteAll(Long[] ids); - /** - * 编辑 - * @param dto / - */ - void update(ProduceshiftorderDto dto); + /** + * 根据当前登录用户下拉 + * + * @param param + * @return + */ + JSONArray getDevice(JSONObject param); - /** - * 多选删除 - * @param ids / - */ - void deleteAll(Long[] ids); + /** + * 一体机获取设备列表 + * + * @Param: form 请求参数 + * @return: 设备列表 + * @author gbx + * @date 2023/4/7 + */ + List getDeviceList(String param); + /** + * 一体机-工单管理列表 + * + * @return 工单列表 + * @Param form 请求参数 + * @author gbx + * @date 2023/04/7 + */ + Map getOrderList(Map param, Pageable page); - /** - * 根据当前登录用户下拉 - * @param param - * @return - */ - JSONArray getDevice(JSONObject param); + /** + * 获取工单生产记录 + * + * @param param + * @return + */ + JSONArray getTable(JSONObject param); - /** - * 获取工单生产记录 - * @param param - * @return - */ - JSONArray getTable(JSONObject param); + /** + * 开工操作 + * + * @param param 请求参数 + */ + CommonResult> openStart(JSONObject param); - /** - * 看板开工 - * @param param - */ - void openStart(JSONObject param); + /** + * 报工操作 + * + * @param param 请求参数 + */ + CommonResult> saveReport(JSONObject param); - /** - * 看板报工 - * @param param - */ - void saveReport(JSONObject param); + /** + * 完工操作 + * + * @param param 请求参数 + */ + CommonResult> finish(JSONObject param); - /** - * 看板强制完成 - * @param param - */ - void finish(JSONObject param); + /** + * 获取当前报工记录 + * + * @param param + * @return + */ + JSONObject getReportWork(JSONObject param); - /** - * 获取当前报工记录 - * @param param - * @return - */ - JSONObject getReportWork(JSONObject param); + /** + * 工单强制完成 + * + * @param param + */ + void forceFinish(JSONObject param); + /** + * 获取当前工单下的工单生产记录 + * + * @param param + * @return + */ + JSONArray getDtl(JSONObject param); - /** - * 工单强制完成 - * @param param - */ - void forceFinish(JSONObject param); + /** + * excel工单批量导入 + * + * @param file + * @param request + */ + void excelImport(MultipartFile file, HttpServletRequest request); - /** - * 获取当前工单下的工单生产记录 - * @param param - * @return - */ - JSONArray getDtl(JSONObject param); + /** + * 更换设备时根据工单所属工序 查询所有工单中没有生产的设备 + * + * @param param + * @return + */ + JSONArray getNotWorkDeviceByWorkproceduceId(JSONObject param); - /** - * excel工单批量导入 - * @param file - * @param request - */ - void excelImport(MultipartFile file, HttpServletRequest request); + /** + * 更换设备 + * + * @param param + */ + void replaceDevice(JSONObject param); - /** - * 更换设备时根据工单所属工序 查询所有工单中没有生产的设备 - * @param param - * @return - */ - JSONArray getNotWorkDeviceByWorkproceduceId(JSONObject param); - - /** - * 更换设备 - * @param param - */ - void replaceDevice(JSONObject param); - - List getUser(); + List getUser(); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/dto/DeviceDto.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/dto/DeviceDto.java new file mode 100644 index 00000000..e7f5e06f --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/dto/DeviceDto.java @@ -0,0 +1,58 @@ +package org.nl.wms.mps.service.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 设备信息 + * + * @author gbx + * @since 2023-04-10 + */ +@Data +@SuppressWarnings("serial") +public class DeviceDto{ + /** + * 设备编码 + */ + @ApiModelProperty(value = "/**设备编码*/") + private String deviceCode; + /** + * 设备名称 + */ + @ApiModelProperty(value = "/**设备名称*/") + private String deviceName; + /** + * 设备名称 + */ + @ApiModelProperty(value = "/**设备名称*/") + private String device_status_name; + /** + * 工单编号 + */ + @ApiModelProperty(value = "/**工单编号*/") + private String workorderCode; + /** + * 工单数 + */ + @ApiModelProperty(value = "/**工单数*/") + private String job_count; + /** + * 设备状态 + */ + @ApiModelProperty(value = "/**设备状态*/") + private String device_status; + /** + * 设备图标路径 + */ + @ApiModelProperty(value = "/**设备图标路径*/") + private String device_icon; + /** + * 运行状态 + */ + @ApiModelProperty(value = "/**运行状态*/") + private String is_run; + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceshiftorderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceshiftorderServiceImpl.java index 343563c3..60b16410 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceshiftorderServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceshiftorderServiceImpl.java @@ -1,7 +1,5 @@ package org.nl.wms.mps.service.impl; - -import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; @@ -15,14 +13,14 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.RequiredArgsConstructor; -import org.nl.common.anno.Log; import lombok.extern.slf4j.Slf4j; import org.nl.common.enums.WorkerOrderEnum; import org.nl.common.utils.MapOf; +import org.nl.common.utils.api.CommonResult; +import org.nl.common.utils.api.RestBusinessTemplate; import org.nl.modules.common.exception.BadRequestException; - import org.nl.modules.system.util.CodeUtil; - import org.nl.common.utils.SecurityUtils; +import org.nl.common.utils.SecurityUtils; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.WqlUtil; @@ -33,8 +31,8 @@ import org.nl.wms.basedata.master.service.ClassstandardService; import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.mps.service.ProduceshiftorderService; import org.nl.wms.mps.service.WorkOrderImportEnum; +import org.nl.wms.mps.service.dto.DeviceDto; import org.nl.wms.mps.service.dto.ProduceshiftorderDto; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; @@ -53,673 +51,763 @@ import java.util.*; @Service @RequiredArgsConstructor @Slf4j -public class ProduceshiftorderServiceImpl implements ProduceshiftorderService { +public class ProduceshiftorderServiceImpl implements ProduceshiftorderService{ + private final ClassstandardService classstandardService; + private final WmsToAcsService wmsToAcsService; + @Autowired + ISysUserService userService; - private final ClassstandardService classstandardService; - private final WmsToAcsService wmsToAcsService; + @Override + public Map queryAll(Map whereJson, Pageable page) { + String produceorder_code = MapUtil.getStr(whereJson, "produceorder_code"); + String material = MapUtil.getStr(whereJson, "material"); + String begin_time = MapUtil.getStr(whereJson, "begin_time"); + String end_time = MapUtil.getStr(whereJson, "end_time"); + String order_type_scode = MapUtil.getStr(whereJson, "order_type_scode"); + String order_status = MapUtil.getStr(whereJson, "order_status"); + String shift_type_scode = MapUtil.getStr(whereJson, "shift_type_scode"); + String parent_id = MapUtil.getStr(whereJson, "product_series"); + String sale_id = MapUtil.getStr(whereJson, "sale_id"); + String is_error = MapUtil.getStr(whereJson, "is_error"); + String product_series = ""; + JSONObject map = new JSONObject(); + map.put("flag", "1"); + map.put("order_type_scode", order_type_scode); + //map.put("order_status", order_status); + map.put("shift_type_scode", shift_type_scode); + map.put("begin_time", begin_time); + map.put("end_time", end_time); + if(StrUtil.isNotEmpty(order_status)) { + order_status = order_status.replace("[\"", "").replace("\"]", "").replace("\"", ""); + } + map.put("order_status", order_status); + map.put("is_error", is_error); + //处理状态为未完成 + if(StrUtil.isNotEmpty(order_status) && order_status.contains("-1")) { + map.put("unFinish", "-1"); + map.put("order_status", order_status.replace("-1", "")); + } + if(StrUtil.isNotEmpty(parent_id)) { + product_series = classstandardService.getChildIdStr(parent_id); + map.put("product_series", product_series); + } + if(StrUtil.isNotEmpty(produceorder_code)) { + map.put("produceorder_code", "%" + produceorder_code + "%"); + } + if(StrUtil.isNotEmpty(material)) { + map.put("material", "%" + material + "%"); + } + if(StrUtil.isNotEmpty(sale_id)) { + map.put("sale_id", "%" + sale_id + "%"); + } + WQLObject wo = WQLObject.getWQLObject("mps_bd_macoperaterecord"); + JSONObject jsonObject = WQL.getWO("MPS_PRODUCEDURE001").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "ShiftOrder.update_time desc"); + return jsonObject; + } - @Autowired - ISysUserService userService; + @Override + public List queryAll(Map whereJson) { + WQLObject wo = WQLObject.getWQLObject("mps_bd_produceshiftorder"); + JSONArray arr = wo.query().getResultJSONArray(0); + if(ObjectUtil.isNotEmpty(arr)) { + return arr.toJavaList(ProduceshiftorderDto.class); + } + return null; + } + @Override + public ProduceshiftorderDto findById(Long produceorder_id) { + WQLObject wo = WQLObject.getWQLObject("mps_bd_produceshiftorder"); + JSONObject json = wo.query("produceorder_id = '" + produceorder_id + "'").uniqueResult(0); + if(ObjectUtil.isNotEmpty(json)) { + return json.toJavaObject(ProduceshiftorderDto.class); + } + return null; + } + @Override + public ProduceshiftorderDto findByCode(String code) { + WQLObject wo = WQLObject.getWQLObject("mps_bd_produceshiftorder"); + JSONObject json = wo.query("produceorder_code ='" + code + "'").uniqueResult(0); + if(ObjectUtil.isNotEmpty(json)) { + return json.toJavaObject(ProduceshiftorderDto.class); + } + return null; + } - @Override - public Map queryAll(Map whereJson, Pageable page) { - String produceorder_code = MapUtil.getStr(whereJson, "produceorder_code"); - String material = MapUtil.getStr(whereJson, "material"); - String begin_time = MapUtil.getStr(whereJson, "begin_time"); - String end_time = MapUtil.getStr(whereJson, "end_time"); - String order_type_scode = MapUtil.getStr(whereJson, "order_type_scode"); - String order_status = MapUtil.getStr(whereJson, "order_status"); - String shift_type_scode = MapUtil.getStr(whereJson, "shift_type_scode"); - String parent_id = MapUtil.getStr(whereJson, "product_series"); - String sale_id = MapUtil.getStr(whereJson, "sale_id"); - String is_error = MapUtil.getStr(whereJson, "is_error"); - String product_series = ""; - JSONObject map = new JSONObject(); - map.put("flag", "1"); - map.put("order_type_scode", order_type_scode); - //map.put("order_status", order_status); - map.put("shift_type_scode", shift_type_scode); - map.put("begin_time", begin_time); - map.put("end_time", end_time); - if (StrUtil.isNotEmpty(order_status)) { - order_status = order_status.replace("[\"", "").replace("\"]", "").replace("\"", ""); - } - map.put("order_status", order_status); - map.put("is_error", is_error); - //处理状态为未完成 - if (StrUtil.isNotEmpty(order_status) && order_status.contains("-1")) { - map.put("unFinish", "-1"); - map.put("order_status", order_status.replace("-1", "")); - } - if (StrUtil.isNotEmpty(parent_id)) { - product_series = classstandardService.getChildIdStr(parent_id); - map.put("product_series", product_series); - } - if (StrUtil.isNotEmpty(produceorder_code)) { - map.put("produceorder_code", "%" + produceorder_code + "%"); - } - if (StrUtil.isNotEmpty(material)) { - map.put("material", "%" + material + "%"); - } - if (StrUtil.isNotEmpty(sale_id)) { - map.put("sale_id", "%" + sale_id + "%"); - } - WQLObject wo = WQLObject.getWQLObject("mps_bd_macoperaterecord"); - JSONObject jsonObject = WQL.getWO("MPS_PRODUCEDURE001").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "ShiftOrder.update_time desc"); - return jsonObject; - } + @Override + @Transactional(rollbackFor = Exception.class) + public void create(ProduceshiftorderDto dto) { + Integer orderNum = dto.getOrderNum(); + for(Integer i = 0; i < orderNum; i++) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + CurrentUser currentUser = SecurityUtils.getCurrentUser(); + String newCode = CodeUtil.getNewCode("PDM_SHIFTORDER"); + dto.setProduce_date(dto.getProduce_date().substring(0, 10)); + dto.setProduceorder_id(IdUtil.getSnowflake(1, 1).nextId()); + dto.setProduceorder_code(newCode); + dto.setProducedeviceorder_code(newCode); + dto.setOrder_status("00"); + dto.setCreate_id(currentUserId); + dto.setCreate_name(nickName); + dto.setUpdate_id(currentUserId); + dto.setUpdate_name(nickName); + dto.setUpdate_time(DateUtil.now()); + dto.setCreate_time(DateUtil.now()); + WQLObject wo = WQLObject.getWQLObject("mps_bd_produceshiftorder"); + JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); + wo.insert(json); + } + } - @Override - public List queryAll(Map whereJson) { - WQLObject wo = WQLObject.getWQLObject("mps_bd_produceshiftorder"); - JSONArray arr = wo.query().getResultJSONArray(0); - if (ObjectUtil.isNotEmpty(arr)) { - return arr.toJavaList(ProduceshiftorderDto.class); - } - return null; - } + @Override + @Transactional(rollbackFor = Exception.class) + public void update(ProduceshiftorderDto dto) { + ProduceshiftorderDto entity = this.findById(dto.getProduceorder_id()); + if(entity == null) { + throw new BadRequestException("被删除或无权限,操作失败!"); + } + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + dto.setUpdate_time(DateUtil.now()); + dto.setUpdate_id(currentUserId); + dto.setUpdate_name(nickName); + WQLObject wo = WQLObject.getWQLObject("mps_bd_produceshiftorder"); + JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); + wo.update(json); + } - @Override - public ProduceshiftorderDto findById(Long produceorder_id) { - WQLObject wo = WQLObject.getWQLObject("mps_bd_produceshiftorder"); - JSONObject json = wo.query("produceorder_id = '" + produceorder_id + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(json)) { - return json.toJavaObject(ProduceshiftorderDto.class); - } - return null; - } + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteAll(Long[] ids) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + WQLObject wo = WQLObject.getWQLObject("mps_bd_produceshiftorder"); + for(Long produceorder_id : ids) { + JSONObject param = new JSONObject(); + param.put("produceorder_id", String.valueOf(produceorder_id)); + param.put("is_delete", "1"); + param.put("update_optid", currentUserId); + param.put("update_optname", nickName); + param.put("update_time", DateUtil.now()); + wo.update(param); + } + } - @Override - public ProduceshiftorderDto findByCode(String code) { - WQLObject wo = WQLObject.getWQLObject("mps_bd_produceshiftorder"); - JSONObject json = wo.query("produceorder_code ='" + code + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(json)) { - return json.toJavaObject(ProduceshiftorderDto.class); - } - return null; - } + @Override + public JSONArray getDevice(JSONObject param) { + final String workprocedure_id = param.getString("workprocedure_id"); + String currentUserId = SecurityUtils.getCurrentUserId(); + JSONObject map = new JSONObject(); + map.put("flag", "4"); + map.put("jockey_id", currentUserId + ""); + map.put("workprocedure_id", workprocedure_id); + final JSONArray resultJSONArray = WQL.getWO("MPS_PRODUCEDURE001").addParamMap(map).process().getResultJSONArray(0); + return resultJSONArray; + } - @Override - @Transactional(rollbackFor = Exception.class) - public void create(ProduceshiftorderDto dto) { - Integer orderNum = dto.getOrderNum(); - for (Integer i = 0; i < orderNum; i++) { - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - - CurrentUser currentUser = SecurityUtils.getCurrentUser(); - String newCode = CodeUtil.getNewCode("PDM_SHIFTORDER"); - dto.setProduce_date(dto.getProduce_date().substring(0, 10)); - dto.setProduceorder_id(IdUtil.getSnowflake(1, 1).nextId()); - dto.setProduceorder_code(newCode); - dto.setProducedeviceorder_code(newCode); - dto.setOrder_status("00"); - dto.setCreate_id(currentUserId); - dto.setCreate_name(nickName); - dto.setUpdate_id(currentUserId); - dto.setUpdate_name(nickName); - dto.setUpdate_time(DateUtil.now()); - dto.setCreate_time(DateUtil.now()); - WQLObject wo = WQLObject.getWQLObject("mps_bd_produceshiftorder"); - JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); - wo.insert(json); - } - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void update(ProduceshiftorderDto dto) { - ProduceshiftorderDto entity = this.findById(dto.getProduceorder_id()); - if (entity == null) { - throw new BadRequestException("被删除或无权限,操作失败!"); - } - - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - - - dto.setUpdate_time(DateUtil.now()); - dto.setUpdate_id(currentUserId); - dto.setUpdate_name(nickName); - - WQLObject wo = WQLObject.getWQLObject("mps_bd_produceshiftorder"); - JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); - wo.update(json); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void deleteAll(Long[] ids) { - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - - - WQLObject wo = WQLObject.getWQLObject("mps_bd_produceshiftorder"); - for (Long produceorder_id : ids) { - JSONObject param = new JSONObject(); - param.put("produceorder_id", String.valueOf(produceorder_id)); - param.put("is_delete", "1"); - param.put("update_optid", currentUserId); - param.put("update_optname", nickName); - param.put("update_time", DateUtil.now()); - wo.update(param); - } - } - - - @Override - public JSONArray getDevice(JSONObject param) { - final String workprocedure_id = param.getString("workprocedure_id"); - String currentUserId = SecurityUtils.getCurrentUserId(); - JSONObject map = new JSONObject(); - map.put("flag", "4"); - map.put("jockey_id", currentUserId + ""); - map.put("workprocedure_id", workprocedure_id); - final JSONArray resultJSONArray = WQL.getWO("MPS_PRODUCEDURE001").addParamMap(map).process().getResultJSONArray(0); - return resultJSONArray; - } - - @Override - public JSONArray getTable(JSONObject param) { - //获取当前登录用户下的所有设备 - String currentUserId = SecurityUtils.getCurrentUserId(); - SysUser userDto = userService.getById(currentUserId); - Boolean isAdmin = userDto.getIsAdmin(); - String jockey_id = String.valueOf(currentUserId); - if (isAdmin) { - jockey_id = ""; - } - JSONObject map = new JSONObject(); - map.put("flag", "3"); - map.put("jockey_id", jockey_id); - //根据当前用户的设备所属的工序查询属于自己的工单表 - JSONArray resultJSONArray = WQL.getWO("MPS_PRODUCEDURE001").addParamMap(map).process().getResultJSONArray(0); - return resultJSONArray; - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void openStart(JSONObject param) { - WQLObject wo = WQLObject.getWQLObject("pdm_produce_workorder"); - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - //获取前台传入的开工的工单信息 - String workorder_id = param.getString("workorder_id"); - String device_code = param.getString("device_code"); - - JSONObject result = wo.query("current_device_code = '" + device_code + "' and workorder_status in ('2','3','4') and workorder_id != '" + workorder_id + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(result)) { - throw new BadRequestException("已有工单选择该设备开工,请更换开工设备!"); - } - - //TODO:开工时修改生产班次工单表 生产设备、以及工单状态 - - wo.update(MapOf.of("workorder_id",workorder_id,"workorder_status",WorkerOrderEnum.SEND.getCode(),"update_id", currentUserId,"update_name", nickName,"update_time", DateUtil.now())); - - JSONArray array = new JSONArray(); - JSONObject order = new JSONObject(MapOf.of("workorder_id", workorder_id,"type",WorkerOrderEnum.SEND.getCode())); - array.add(order); - Map resp = wmsToAcsService.orderStatusUpdate(array); - String status = String.valueOf(resp.get("status")); - String message = (String) resp.get("message"); - if (!status.equals("200")) { - throw new BadRequestException(message); - } - } - - @Override - public void saveReport(JSONObject param) { - WQLObject wo = WQLObject.getWQLObject("pdm_produce_workorder"); - - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - String report_qty = param.getString("report_qty"); - String workorder_id = param.getString("workorder_id"); - wo.update(MapOf.of("workorder_status",WorkerOrderEnum.STOP.getCode(),"real_qty",report_qty,"update_id",currentUserId,"update_name",nickName),"workorder_id = '"+workorder_id+"'"); - //下发acs暂时 - JSONArray arr = new JSONArray(); - arr.add(MapOf.of("workorder_id",workorder_id,"status", WorkerOrderEnum.STOP.getCode())); - wmsToAcsService.orderStatusUpdate(arr); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void finish(JSONObject param) { - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - - JSONObject row = param.getJSONObject("row"); - //强制完成时修改工单状态 - String produceorder_id = row.getString("produceorder_id"); - WQLObject wo = WQLObject.getWQLObject("MPS_BD_ProduceShiftOrder"); - ProduceshiftorderDto produceshiftorderDto = this.findById(Long.parseLong(produceorder_id)); - JSONObject produceorderMap = new JSONObject(); - produceorderMap.put("produceorder_id", produceorder_id); - produceorderMap.put("order_status", "04"); - produceorderMap.put("update_optid", currentUserId); - produceorderMap.put("device_id", null); - produceorderMap.put("update_optname", nickName); - produceorderMap.put("update_time", DateUtil.now()); - produceorderMap.put("realproduceend_date", DateUtil.now()); - wo.update(produceorderMap); - JSONObject jsonObject = wo.query("produceorder_id = '" + produceorder_id + "'").uniqueResult(0); - String real_qty = jsonObject.getString("real_qty"); - if (StrUtil.isEmpty(real_qty)) { - real_qty = "0"; - } - //同时修改工单记录表中的期末数量及完成数量 - WQLObject wo_record = WQLObject.getWQLObject("MPS_BD_MacOperateRecord"); - JSONObject result = wo_record.query("produceorder_id = '" + produceorder_id + "' and (operatetime_end = '' or operatetime_end is null) ").uniqueResult(0); - if (ObjectUtil.isNotEmpty(result)) { - result.put("finish_qty", real_qty); - result.put("finishproduct_qty", real_qty); - result.put("operatetime_end", DateUtil.now()); - wo_record.update(result); - } - //工单开工以后需要向acs强制完成 wms向acs发送请求 工单强制完成 - // TODO - String order_status = produceshiftorderDto.getOrder_status(); - if (!order_status.equals("00") && !order_status.equals("01")) { - JSONArray array = new JSONArray(); - JSONObject map = new JSONObject(); - map.put("ext_order_id", produceorder_id); - map.put("type", "3"); - array.add(map); - wmsToAcsService.orderStatusUpdate(array); - } - } - - @Override - public JSONObject getReportWork(JSONObject param) { - String produceorder_id = param.getString("produceorder_id"); - WQLObject wo = WQLObject.getWQLObject("MPS_BD_ProduceShiftOrder"); - JSONObject jsonProduceShiftOrder = wo.query("produceorder_id = '" + produceorder_id + "'").uniqueResult(0); - WQLObject wo_record = WQLObject.getWQLObject("MPS_BD_MacOperateRecord"); - //获取最新的工单的对应记录信息 - JSONObject jsonObject = wo_record.query("produceorder_id = '" + produceorder_id + "' and (operatetime_end is null or operatetime_end = '')").uniqueResult(0); - String finish_qty = jsonProduceShiftOrder.getString("real_qty"); - jsonObject.put("finish_qty", finish_qty); - Integer finishproduct_qty = Integer.parseInt(finish_qty) - Integer.parseInt(jsonObject.getString("init_qty")); - jsonObject.put("finishproduct_qty", finishproduct_qty); - return jsonObject; - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void forceFinish(JSONObject param) { - this.finish(param); - } - - @Override - public JSONArray getDtl(JSONObject param) { - final String produceorder_id = param.getString("produceorder_id"); - JSONObject map = new JSONObject(); - map.put("flag", "5"); - map.put("produceorder_id", produceorder_id); - JSONArray resultJSONArray = WQL.getWO("MPS_PRODUCEDURE001").addParamMap(map).process().getResultJSONArray(0); - return resultJSONArray; - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void excelImport(MultipartFile file, HttpServletRequest request) { - if (file.isEmpty()) { - throw new BadRequestException("文件为空,请添加数据后重新导入"); - } - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - - // 1.获取上传文件输入流 - InputStream inputStream = null; - try { - inputStream = file.getInputStream(); - } catch (Exception e) { - e.printStackTrace(); - } - //工单表 - WQLObject wo_order = WQLObject.getWQLObject("MPS_BD_ProduceShiftOrder"); - //物料表 - WQLObject wo_material = WQLObject.getWQLObject("md_me_materialbase"); - //设备表 - WQLObject wo_device = WQLObject.getWQLObject("pdm_bi_device"); - //工序表 - WQLObject wo_workprocedure = WQLObject.getWQLObject("pdm_bi_workprocedure"); - //人员表 - //WQLObject wo_user = WQLObject.getWQLObject("sys_user"); - - // 调用用 hutool 方法读取数据 调用第一个sheet白班数据 - ExcelReader excelReader = ExcelUtil.getReader(inputStream, 0); - // 从第1行开始获取数据 excelReader.read的结果是一个2纬的list,外层是行,内层是行对应的所有列 - List> read = excelReader.read(0, excelReader.getRowCount()); - String produce_date = ""; - // 循环获取的数据 - row: - for (int i = 0; i < read.size(); i++) { - List list = read.get(i); - if (ObjectUtil.isEmpty(list)) { - continue; - } - //获取每列 - JSONObject param = new JSONObject(); - //按照列获取 - param.put("produceorder_id", IdUtil.getSnowflake(1, 1).nextId()); - param.put("produceorder_code", CodeUtil.getNewCode("PDM_SHIFTORDER")); - param.put("producedeviceorder_code", CodeUtil.getNewCode("PDM_SHIFTORDER")); - param.put("order_status", "00"); - param.put("order_type_scode", "01"); - param.put("produce_date", produce_date); - param.put("shift_type_scode", "01"); - String is_error = "0"; - String error_message = ""; - //循环每一行 - col: - for (int j = 0; j < list.size(); j++) { - - String col = String.valueOf(list.get(j)); - //如果是第一行 为生产日期 - if (i == 0 && j == 0) { - produce_date = col.split(":")[col.split(":").length - 1]; - continue row; - } - //如果第一列包含规格二字 则为表头 结束内循环列 - if (j == 0 && col.contains("规格名称")) { - continue row; - } - if (j == 0) { - //物料 - if (StrUtil.isEmpty(col)) { - is_error = "1"; - error_message = error_message + "物料规格为空,"; + /** + * 一体机获取设备列表 + * 设备状态枚举1-关机、2-开机、3-生产中、4-待机、5-故障 + * + * @author gbx + * @since 2023/4/7 + */ + @Override + public List getDeviceList(String param) { + List list = WQL.getWO("ONEPART_QUERY").addParam("flag", "1").addParam("condition", param).process().getResultJSONArray(0).toJavaList(DeviceDto.class); + list.forEach(r -> { + //状态为为关机 + if(StrUtil.isEmpty(r.getDevice_status())) { + r.setDevice_status("1"); + r.setDevice_status_name("关机"); + } + else{ + //不是关机与故障状态则为运行 + if(!Objects.equals(r.getDevice_status(), "1") && !Objects.equals(r.getDevice_status(), "5")) { + r.setIs_run("1"); } - JSONObject json_material = wo_material.query("is_delete = '0' and material_spec = '" + col + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(json_material)) { - is_error = "1"; - error_message = error_message + "物料规格对应物料信息不存在,"; - }else { - param.put("material_id", json_material.getString("material_id")); + else{ + r.setIs_run("0"); } - } - if (j == 2) { - if (StrUtil.isEmpty(col)) { - is_error = "1"; - error_message = error_message + "工序名称为空,"; - } - WorkOrderImportEnum idByName = WorkOrderImportEnum.getIdByName(col); - if (ObjectUtil.isEmpty(idByName)) { - is_error = "1"; - error_message = error_message + "工序名称是否正确,"; - }else { - param.put("workprocedure_id", idByName.getId()); - } - } - if (j == 4) { - //单重 - param.put("material_weight", col); - } - if (j == 6) { - if (StrUtil.isEmpty(col)) { - is_error = "1"; - error_message = error_message + "工单计划数量为空,"; - }else { - param.put("plan_qty", col); - } - } - if (j == 10) { - String workprocedure_id = param.getString("workprocedure_id"); - JSONObject json_device = wo_device.query("is_delete = '0' and device_code = '" + col + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(json_device)) { - is_error = "1"; - error_message = error_message + "设备编码不存在,"; - } - if (!workprocedure_id.equals(json_device.getString("workprocedure_id"))) { - is_error = "1"; - error_message = error_message + "设备与所属工序不匹配,"; - }else { - param.put("device_id", json_device.getString("device_id")); - } - } - if (j == 11) { - SysUser jsonUser = userService.getOne(new QueryWrapper().eq("username", SecurityUtils.getCurrentUsername())); - if (ObjectUtil.isEmpty(jsonUser)) { - is_error = "1"; - error_message = error_message + "生产人员编码不存在!"; - }else { - param.put("jockey_id", jsonUser.getUserId()); - } - } - if (j == 12) { - //允许修改报工数量 - String is_canupdate = "0"; - if (col.equals("是")) { - is_canupdate = "1"; - } - param.put("is_canupdate_update", is_canupdate); - } - if (j == 13) { - //是否agv搬运 - String needmoce = "0"; - if (col.equals("是")) { - needmoce = "1"; - } - param.put("is_needmove", needmoce); - } - } - param.put("is_error", is_error); - param.put("error_info", error_message); - param.put("planproducestart_date", produce_date + "07:30:00"); - param.put("planproduceend_date", produce_date + "18:30:00"); - param.put("create_id", currentUserId); - param.put("create_name", nickName); - param.put("create_time", DateUtil.now()); - wo_order.insert(param); - } + } + //todo 当前工单数 + r.setJob_count("1"); + }); + return list; + } - // 1.获取上传文件输入流 - inputStream = null; - try { - inputStream = file.getInputStream(); - } catch (Exception e) { - e.printStackTrace(); - } - //读取夜班工单数据 - excelReader = ExcelUtil.getReader(inputStream, 1); - read = excelReader.read(0, excelReader.getRowCount()); - String is_error = "0"; - String error_message = ""; - // 循环获取的数据 - row: - for (int i = 0; i < read.size(); i++) { - List list = read.get(i); - //获取每列 - JSONObject param = new JSONObject(); - //按照列获取 - param.put("produceorder_id", IdUtil.getSnowflake(1, 1).nextId()); - param.put("produceorder_code", CodeUtil.getNewCode("PDM_SHIFTORDER")); - param.put("producedeviceorder_code", CodeUtil.getNewCode("PDM_SHIFTORDER")); - param.put("order_status", "00"); - param.put("order_type_scode", "01"); - param.put("produce_date", produce_date); - param.put("shift_type_scode", "02"); - //循环每一行 - col: - for (int j = 0; j < list.size(); j++) { + /** + * 一体机获取工单列表 + * + * @author gbx + * @since 2023/4/7 + */ + @Override + public Map getOrderList(Map param, Pageable page) { + HashMap map = new HashMap<>(); + map.put("flag", "2"); + Integer pageNumber = 0; + Integer pageSize = 20; + JSONObject whereJson = JSONObject.parseObject(JSON.toJSONString(param)); + //设备编号 + if(StrUtil.isNotEmpty(whereJson.getString("device_code"))) { + map.put("device_code", "%" + whereJson.getString("device_code") + "%"); + } + //搜索条件 + if(StrUtil.isNotEmpty(whereJson.getString("key_value"))) { + map.put("key_value", "%" + whereJson.getString("key_value") + "%"); + } + //开始时间 + if(StrUtil.isNotEmpty(whereJson.getString("realproducestart_date"))) { + map.put("realproducestart_date", whereJson.getString("realproducestart_date")); + } + //结束时间 + if(StrUtil.isNotEmpty(whereJson.getString("realproduceend_date"))) { + map.put("realproduceend_date", whereJson.getString("realproduceend_date")); + } + //分页参数 + if(StrUtil.isNotEmpty(whereJson.getString("page")) && StrUtil.isNotEmpty(whereJson.getString("size"))) { + pageNumber = whereJson.getInteger("page"); + pageSize = whereJson.getInteger("size"); + //暂时无分页 + if(pageNumber == 1) { + pageNumber = 0; + pageSize = 100; + } + } + JSONObject jsonObject = WQL.getWO("ONEPART_QUERY").addParamMap(map).pageQuery(WqlUtil.getHttpContext(pageNumber, pageSize), "workorder.create_time desc"); + String size = jsonObject.getString("totalElements"); + jsonObject.put("size", size); + //适配前端分页条件 + jsonObject.remove("totalElements"); + return jsonObject; + } - String col = String.valueOf(list.get(j)); - //如果是第一行 为生产日期 - if (i == 0 && j == 0) { - produce_date = col.split(":")[col.split(":").length - 1]; - continue row; - } - //如果第一列包含规格二字 则为表头 结束内循环列 - if (j == 0 && col.contains("规格名称")) { - continue row; - } - if (j == 0) { - //物料 - if (StrUtil.isEmpty(col)) { - is_error = "1"; - error_message = error_message + "物料规格为空,"; - } - JSONObject json_material = wo_material.query("is_delete = '0' and material_spec = '" + col + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(json_material)) { - is_error = "1"; - error_message = error_message + "物料规格对应物料信息不存在,"; - }else { - param.put("material_id", json_material.getString("material_id")); - } - } - if (j == 2) { - if (StrUtil.isEmpty(col)) { - is_error = "1"; - error_message = error_message + "工序名称为空,"; - } - WorkOrderImportEnum idByName = WorkOrderImportEnum.getIdByName(col); - if (ObjectUtil.isEmpty(idByName)) { - is_error = "1"; - error_message = error_message + "工序名称是否正确,"; - }else { - param.put("workprocedure_id", idByName.getId()); - } - } - if (j == 4) { - //单重 - param.put("material_weight", col); - } - if (j == 6) { - if (StrUtil.isEmpty(col)) { - is_error = "1"; - error_message = error_message + "工单计划数量为空,"; - }else { - param.put("plan_qty", col); - } - } -// if (j == 10) { -// //物料 -// JSONObject json_material = wo_material.query("is_delete = '0' and material_code = '" + col + "'").uniqueResult(0); -// if (ObjectUtil.isEmpty(json_material)) { -// throw new BadRequestException("第'" + (i + 2) + "'行,物料编码不存在"); -// } -// param.put("material_id", json_material.getString("material_id")); -// } - if (j == 10) { - String workprocedure_id = param.getString("workprocedure_id"); - JSONObject json_device = wo_device.query("is_delete = '0' and device_code = '" + col + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(json_device)) { - is_error = "1"; - error_message = error_message + "设备编码不存在,"; - } - if (!workprocedure_id.equals(json_device.getString("workprocedure_id"))) { - is_error = "1"; - error_message = error_message + "设备与所属工序不匹配,"; - }else { - param.put("device_id", json_device.getString("device_id")); - } - } - if (j == 11) { - SysUser jsonUser = userService.getOne(new QueryWrapper().eq("username", SecurityUtils.getCurrentUsername())); - if (ObjectUtil.isEmpty(jsonUser)) { - is_error = "1"; - error_message = error_message + "生产人员编码不存在!"; - }else { - param.put("jockey_id", jsonUser.getUserId()); - } - } - if (j == 12) { - //允许修改报工数量 - String is_canupdate = "0"; - if (col.equals("是")) { - is_canupdate = "1"; - } - param.put("is_canupdate_update", is_canupdate); - } - if (j == 13) { - //是否agv搬运 - String needmoce = "0"; - if (col.equals("是")) { - needmoce = "1"; - } - param.put("is_needmove", needmoce); - } - } - param.put("is_error", is_error); - param.put("error_info", error_message); - param.put("planproducestart_date", produce_date + "18:30:00"); - DateTime dateTime = DateUtil.offsetDay(DateUtil.parse(produce_date), 1); - param.put("planproduceend_date", DateUtil.format(dateTime,"yyyy-MM-dd") + " 07:30:00"); - param.put("create_id", currentUserId); - param.put("create_name", nickName); - param.put("create_time", DateUtil.now()); - wo_order.insert(param); - } + @Override + public JSONArray getTable(JSONObject param) { + //获取当前登录用户下的所有设备 + String currentUserId = SecurityUtils.getCurrentUserId(); + SysUser userDto = userService.getById(currentUserId); + Boolean isAdmin = userDto.getIsAdmin(); + String jockey_id = String.valueOf(currentUserId); + if(isAdmin) { + jockey_id = ""; + } + JSONObject map = new JSONObject(); + map.put("flag", "3"); + map.put("jockey_id", jockey_id); + //根据当前用户的设备所属的工序查询属于自己的工单表 + JSONArray resultJSONArray = WQL.getWO("MPS_PRODUCEDURE001").addParamMap(map).process().getResultJSONArray(0); + return resultJSONArray; + } - } + /** + * 开工操作 + * + * @author gbx + * @since 2023/4/7 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResult> openStart(JSONObject param) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + WQLObject wo = WQLObject.getWQLObject("pdm_produce_workorder"); + //获取前台传入的开工的工单信息 + String workorder_id = param.getString("workorder_id"); + String device_code = param.getString("device_code"); + //1-创建、2-下发、3-生产中、4-暂停、5-完成 + JSONObject result = wo.query("current_device_code = '" + device_code + "' and workorder_status in ('2','3','4') and workorder_id != '" + workorder_id + "'").uniqueResult(0); + //判断该工单状态 + if(ObjectUtil.isNotEmpty(result)) { + throw new BadRequestException("已有工单选择该设备开工,请更换开工设备!"); + } + //TODO:开工时修改生产班次工单表 生产设备、以及工单状态 + wo.update(MapOf.of("workorder_id", workorder_id, "workorder_status", WorkerOrderEnum.SEND.getCode(), "update_id", currentUserId, "update_name", nickName, "update_time", DateUtil.now())); + JSONArray array = new JSONArray(); + JSONObject order = new JSONObject(MapOf.of("workorder_id", workorder_id, "type", WorkerOrderEnum.SEND.getCode())); + array.add(order); + //下发acs + // Map resp = wmsToAcsService.orderStatusUpdate(array); + // return RestBusinessTemplate.execute(() -> resp); + return RestBusinessTemplate.execute(() -> new JSONObject()); + } - @Override - public JSONArray getNotWorkDeviceByWorkproceduceId(JSONObject param) { - final String workproceduce_id = param.getString("workproceduce_id"); - JSONObject map = new JSONObject(); - map.put("flag", "6"); - map.put("workproceduce_id", workproceduce_id); - JSONArray devices = WQL.getWO("MPS_PRODUCEDURE001").addParamMap(map).process().getResultJSONArray(0); - StringBuilder sb = new StringBuilder(); - if (ObjectUtil.isNotEmpty(devices)) { - sb.append("("); - for (int i = 0; i < devices.size(); i++) { - JSONObject device = devices.getJSONObject(i); - String device_id = device.getString("device_id"); - if (devices.size() - 1 == i) { - sb.append("'" + device_id + "')"); - } - if (devices.size() - 1 != i) { - sb.append("'" + device_id + "',"); - } - } - param.put("device_ids", sb.toString()); - } else { - param.put("device_ids", "('-1')"); - } - param.put("flag", "7"); - param.put("workprocedure_id", workproceduce_id); - JSONArray resultJSONArray = WQL.getWO("MPS_PRODUCEDURE001").addParamMap(param).process().getResultJSONArray(0); - return resultJSONArray; - } + /** + * 报工操作 + * + * @author gbx + * @since 2023/4/7 + */ + @Override + public CommonResult> saveReport(JSONObject param) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String report_qty = param.getString("report_qty"); + String workorder_id = param.getString("workorder_id"); + WQLObject wo = WQLObject.getWQLObject("pdm_produce_workorder"); + //1.更新工单表报工数量 + wo.update(MapOf.of("workorder_status", WorkerOrderEnum.STOP.getCode(), "real_qty", report_qty, "update_id", currentUserId, "update_name", nickName), "workorder_id = '" + workorder_id + "'"); + //2.下发acs更新暂停状态 + JSONArray arr = new JSONArray(); + arr.add(MapOf.of("workorder_id", workorder_id, "status", WorkerOrderEnum.STOP.getCode())); + // Map resp = wmsToAcsService.orderStatusUpdate(arr); + //return RestBusinessTemplate.execute(() -> resp); + return RestBusinessTemplate.execute(() -> new JSONObject()); + } - @Override - @Transactional - public void replaceDevice(JSONObject param) { - String produceorder_code = param.getString("produceorder_code"); - String device_id = param.getString("device_id"); - String device_code = param.getString("device_code"); - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); + /** + * 完工操作 + * 设备状态枚举1-关机、2-开机、3-生产中、4-待机、5-故障 + * + * @author gbx + * @since 2023/4/7 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResult> finish(JSONObject param) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + //选中的工单信息 + JSONObject row = param.getJSONObject("row"); + //1.强制完成时修改工单状态 + String workorder_id = row.getString("workorder_id"); + WQLObject wo = WQLObject.getWQLObject("pdm_produce_workorder"); + JSONObject map = new JSONObject(); + map.put("produceorder_id", workorder_id); + map.put("workorder_status", "4"); + map.put("current_device_code", null); + map.put("update_id", currentUserId); + map.put("update_name", nickName); + map.put("update_time", DateUtil.now()); + map.put("realproduceend_date", DateUtil.now()); + wo.update(map, "workorder_id = '" + workorder_id + "'"); + //2.设置实际数量 + JSONObject jsonObject = wo.query("workorder_id = '" + workorder_id + "'").uniqueResult(0); + String real_qty = jsonObject.getString("real_qty"); + if(StrUtil.isEmpty(real_qty)) { + real_qty = "0"; + } + //3.修改工单记录表中的期末数量及完成数量 + WQLObject wo_record = WQLObject.getWQLObject("pdm_produce_workorderrecord"); + JSONObject result = wo_record.query("workorder_id = '" + workorder_id + "' and (operatetime_end = '' or operatetime_end is null) ").uniqueResult(0); + if(ObjectUtil.isNotEmpty(result)) { + result.put("dq_finish_qty", real_qty); + result.put("person_finish_qty", real_qty); + result.put("operatetime_end", DateUtil.now()); + wo_record.update(result); + } + //4.工单开工以后需要向acs强制完成,wms向acs发送请求,工单强制完成 + String workorder_status = jsonObject.getString("workorder_status"); + if(!workorder_status.equals("0") && !workorder_status.equals("1")) { + JSONArray array = new JSONArray(); + JSONObject acs = new JSONObject(); + acs.put("ext_order_id", workorder_id); + acs.put("type", "3"); + array.add(acs); + //Map resp = wmsToAcsService.orderStatusUpdate(array); + // return RestBusinessTemplate.execute(() -> resp); + return RestBusinessTemplate.execute(() -> new JSONObject()); + } + return RestBusinessTemplate.execute(() -> new JSONObject()); + } - ProduceshiftorderDto produceshiftorderDto = this.findByCode(produceorder_code); - produceshiftorderDto.setDevice_id(Long.parseLong(device_id)); - produceshiftorderDto.setUpdate_id(currentUserId); - produceshiftorderDto.setUpdate_name(nickName); - produceshiftorderDto.setUpdate_time(DateUtil.now()); - String order_status = produceshiftorderDto.getOrder_status(); - if (!order_status.equals("03") && !order_status.equals("01") && !order_status.equals("00")) { - JSONArray array = new JSONArray(); - JSONObject acsObj = new JSONObject(); - acsObj.put("order_code", produceorder_code); - acsObj.put("device_code", device_code); - array.add(acsObj); - Map resp = wmsToAcsService.replaceDevice(array); - String status = String.valueOf(resp.get("status")); - String message = (String) resp.get("message"); - if (!status.equals("200")) { - throw new BadRequestException(message); - } - } - this.update(produceshiftorderDto); - } + @Override + public JSONObject getReportWork(JSONObject param) { + String produceorder_id = param.getString("produceorder_id"); + WQLObject wo = WQLObject.getWQLObject("MPS_BD_ProduceShiftOrder"); + JSONObject jsonProduceShiftOrder = wo.query("produceorder_id = '" + produceorder_id + "'").uniqueResult(0); + WQLObject wo_record = WQLObject.getWQLObject("MPS_BD_MacOperateRecord"); + //获取最新的工单的对应记录信息 + JSONObject jsonObject = wo_record.query("produceorder_id = '" + produceorder_id + "' and (operatetime_end is null or operatetime_end = '')").uniqueResult(0); + String finish_qty = jsonProduceShiftOrder.getString("real_qty"); + jsonObject.put("finish_qty", finish_qty); + Integer finishproduct_qty = Integer.parseInt(finish_qty) - Integer.parseInt(jsonObject.getString("init_qty")); + jsonObject.put("finishproduct_qty", finishproduct_qty); + return jsonObject; + } - @Override - public List getUser() { - return userService.list(new QueryWrapper().select("user_id,person_name")); - } + @Override + @Transactional(rollbackFor = Exception.class) + public void forceFinish(JSONObject param) { + this.finish(param); + } + @Override + public JSONArray getDtl(JSONObject param) { + final String produceorder_id = param.getString("produceorder_id"); + JSONObject map = new JSONObject(); + map.put("flag", "5"); + map.put("produceorder_id", produceorder_id); + JSONArray resultJSONArray = WQL.getWO("MPS_PRODUCEDURE001").addParamMap(map).process().getResultJSONArray(0); + return resultJSONArray; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void excelImport(MultipartFile file, HttpServletRequest request) { + if(file.isEmpty()) { + throw new BadRequestException("文件为空,请添加数据后重新导入"); + } + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + // 1.获取上传文件输入流 + InputStream inputStream = null; + try { + inputStream = file.getInputStream(); + } + catch(Exception e) { + e.printStackTrace(); + } + //工单表 + WQLObject wo_order = WQLObject.getWQLObject("MPS_BD_ProduceShiftOrder"); + //物料表 + WQLObject wo_material = WQLObject.getWQLObject("md_me_materialbase"); + //设备表 + WQLObject wo_device = WQLObject.getWQLObject("pdm_bi_device"); + //工序表 + WQLObject wo_workprocedure = WQLObject.getWQLObject("pdm_bi_workprocedure"); + //人员表 + //WQLObject wo_user = WQLObject.getWQLObject("sys_user"); + // 调用用 hutool 方法读取数据 调用第一个sheet白班数据 + ExcelReader excelReader = ExcelUtil.getReader(inputStream, 0); + // 从第1行开始获取数据 excelReader.read的结果是一个2纬的list,外层是行,内层是行对应的所有列 + List> read = excelReader.read(0, excelReader.getRowCount()); + String produce_date = ""; + // 循环获取的数据 + row: + for(int i = 0; i < read.size(); i++) { + List list = read.get(i); + if(ObjectUtil.isEmpty(list)) { + continue; + } + //获取每列 + JSONObject param = new JSONObject(); + //按照列获取 + param.put("produceorder_id", IdUtil.getSnowflake(1, 1).nextId()); + param.put("produceorder_code", CodeUtil.getNewCode("PDM_SHIFTORDER")); + param.put("producedeviceorder_code", CodeUtil.getNewCode("PDM_SHIFTORDER")); + param.put("order_status", "00"); + param.put("order_type_scode", "01"); + param.put("produce_date", produce_date); + param.put("shift_type_scode", "01"); + String is_error = "0"; + String error_message = ""; + //循环每一行 + col: + for(int j = 0; j < list.size(); j++) { + String col = String.valueOf(list.get(j)); + //如果是第一行 为生产日期 + if(i == 0 && j == 0) { + produce_date = col.split(":")[col.split(":").length - 1]; + continue row; + } + //如果第一列包含规格二字 则为表头 结束内循环列 + if(j == 0 && col.contains("规格名称")) { + continue row; + } + if(j == 0) { + //物料 + if(StrUtil.isEmpty(col)) { + is_error = "1"; + error_message = error_message + "物料规格为空,"; + } + JSONObject json_material = wo_material.query("is_delete = '0' and material_spec = '" + col + "'").uniqueResult(0); + if(ObjectUtil.isEmpty(json_material)) { + is_error = "1"; + error_message = error_message + "物料规格对应物料信息不存在,"; + } + else{ + param.put("material_id", json_material.getString("material_id")); + } + } + if(j == 2) { + if(StrUtil.isEmpty(col)) { + is_error = "1"; + error_message = error_message + "工序名称为空,"; + } + WorkOrderImportEnum idByName = WorkOrderImportEnum.getIdByName(col); + if(ObjectUtil.isEmpty(idByName)) { + is_error = "1"; + error_message = error_message + "工序名称是否正确,"; + } + else{ + param.put("workprocedure_id", idByName.getId()); + } + } + if(j == 4) { + //单重 + param.put("material_weight", col); + } + if(j == 6) { + if(StrUtil.isEmpty(col)) { + is_error = "1"; + error_message = error_message + "工单计划数量为空,"; + } + else{ + param.put("plan_qty", col); + } + } + if(j == 10) { + String workprocedure_id = param.getString("workprocedure_id"); + JSONObject json_device = wo_device.query("is_delete = '0' and device_code = '" + col + "'").uniqueResult(0); + if(ObjectUtil.isEmpty(json_device)) { + is_error = "1"; + error_message = error_message + "设备编码不存在,"; + } + if(!workprocedure_id.equals(json_device.getString("workprocedure_id"))) { + is_error = "1"; + error_message = error_message + "设备与所属工序不匹配,"; + } + else{ + param.put("device_id", json_device.getString("device_id")); + } + } + if(j == 11) { + SysUser jsonUser = userService.getOne(new QueryWrapper().eq("username", SecurityUtils.getCurrentUsername())); + if(ObjectUtil.isEmpty(jsonUser)) { + is_error = "1"; + error_message = error_message + "生产人员编码不存在!"; + } + else{ + param.put("jockey_id", jsonUser.getUserId()); + } + } + if(j == 12) { + //允许修改报工数量 + String is_canupdate = "0"; + if(col.equals("是")) { + is_canupdate = "1"; + } + param.put("is_canupdate_update", is_canupdate); + } + if(j == 13) { + //是否agv搬运 + String needmoce = "0"; + if(col.equals("是")) { + needmoce = "1"; + } + param.put("is_needmove", needmoce); + } + } + param.put("is_error", is_error); + param.put("error_info", error_message); + param.put("planproducestart_date", produce_date + "07:30:00"); + param.put("planproduceend_date", produce_date + "18:30:00"); + param.put("create_id", currentUserId); + param.put("create_name", nickName); + param.put("create_time", DateUtil.now()); + wo_order.insert(param); + } + // 1.获取上传文件输入流 + inputStream = null; + try { + inputStream = file.getInputStream(); + } + catch(Exception e) { + e.printStackTrace(); + } + //读取夜班工单数据 + excelReader = ExcelUtil.getReader(inputStream, 1); + read = excelReader.read(0, excelReader.getRowCount()); + String is_error = "0"; + String error_message = ""; + // 循环获取的数据 + row: + for(int i = 0; i < read.size(); i++) { + List list = read.get(i); + //获取每列 + JSONObject param = new JSONObject(); + //按照列获取 + param.put("produceorder_id", IdUtil.getSnowflake(1, 1).nextId()); + param.put("produceorder_code", CodeUtil.getNewCode("PDM_SHIFTORDER")); + param.put("producedeviceorder_code", CodeUtil.getNewCode("PDM_SHIFTORDER")); + param.put("order_status", "00"); + param.put("order_type_scode", "01"); + param.put("produce_date", produce_date); + param.put("shift_type_scode", "02"); + //循环每一行 + col: + for(int j = 0; j < list.size(); j++) { + String col = String.valueOf(list.get(j)); + //如果是第一行 为生产日期 + if(i == 0 && j == 0) { + produce_date = col.split(":")[col.split(":").length - 1]; + continue row; + } + //如果第一列包含规格二字 则为表头 结束内循环列 + if(j == 0 && col.contains("规格名称")) { + continue row; + } + if(j == 0) { + //物料 + if(StrUtil.isEmpty(col)) { + is_error = "1"; + error_message = error_message + "物料规格为空,"; + } + JSONObject json_material = wo_material.query("is_delete = '0' and material_spec = '" + col + "'").uniqueResult(0); + if(ObjectUtil.isEmpty(json_material)) { + is_error = "1"; + error_message = error_message + "物料规格对应物料信息不存在,"; + } + else{ + param.put("material_id", json_material.getString("material_id")); + } + } + if(j == 2) { + if(StrUtil.isEmpty(col)) { + is_error = "1"; + error_message = error_message + "工序名称为空,"; + } + WorkOrderImportEnum idByName = WorkOrderImportEnum.getIdByName(col); + if(ObjectUtil.isEmpty(idByName)) { + is_error = "1"; + error_message = error_message + "工序名称是否正确,"; + } + else{ + param.put("workprocedure_id", idByName.getId()); + } + } + if(j == 4) { + //单重 + param.put("material_weight", col); + } + if(j == 6) { + if(StrUtil.isEmpty(col)) { + is_error = "1"; + error_message = error_message + "工单计划数量为空,"; + } + else{ + param.put("plan_qty", col); + } + } + // if (j == 10) { + // //物料 + // JSONObject json_material = wo_material.query("is_delete = '0' and material_code = '" + col + "'").uniqueResult(0); + // if (ObjectUtil.isEmpty(json_material)) { + // throw new BadRequestException("第'" + (i + 2) + "'行,物料编码不存在"); + // } + // param.put("material_id", json_material.getString("material_id")); + // } + if(j == 10) { + String workprocedure_id = param.getString("workprocedure_id"); + JSONObject json_device = wo_device.query("is_delete = '0' and device_code = '" + col + "'").uniqueResult(0); + if(ObjectUtil.isEmpty(json_device)) { + is_error = "1"; + error_message = error_message + "设备编码不存在,"; + } + if(!workprocedure_id.equals(json_device.getString("workprocedure_id"))) { + is_error = "1"; + error_message = error_message + "设备与所属工序不匹配,"; + } + else{ + param.put("device_id", json_device.getString("device_id")); + } + } + if(j == 11) { + SysUser jsonUser = userService.getOne(new QueryWrapper().eq("username", SecurityUtils.getCurrentUsername())); + if(ObjectUtil.isEmpty(jsonUser)) { + is_error = "1"; + error_message = error_message + "生产人员编码不存在!"; + } + else{ + param.put("jockey_id", jsonUser.getUserId()); + } + } + if(j == 12) { + //允许修改报工数量 + String is_canupdate = "0"; + if(col.equals("是")) { + is_canupdate = "1"; + } + param.put("is_canupdate_update", is_canupdate); + } + if(j == 13) { + //是否agv搬运 + String needmoce = "0"; + if(col.equals("是")) { + needmoce = "1"; + } + param.put("is_needmove", needmoce); + } + } + param.put("is_error", is_error); + param.put("error_info", error_message); + param.put("planproducestart_date", produce_date + "18:30:00"); + DateTime dateTime = DateUtil.offsetDay(DateUtil.parse(produce_date), 1); + param.put("planproduceend_date", DateUtil.format(dateTime, "yyyy-MM-dd") + " 07:30:00"); + param.put("create_id", currentUserId); + param.put("create_name", nickName); + param.put("create_time", DateUtil.now()); + wo_order.insert(param); + } + } + + @Override + public JSONArray getNotWorkDeviceByWorkproceduceId(JSONObject param) { + final String workproceduce_id = param.getString("workproceduce_id"); + JSONObject map = new JSONObject(); + map.put("flag", "6"); + map.put("workproceduce_id", workproceduce_id); + JSONArray devices = WQL.getWO("MPS_PRODUCEDURE001").addParamMap(map).process().getResultJSONArray(0); + StringBuilder sb = new StringBuilder(); + if(ObjectUtil.isNotEmpty(devices)) { + sb.append("("); + for(int i = 0; i < devices.size(); i++) { + JSONObject device = devices.getJSONObject(i); + String device_id = device.getString("device_id"); + if(devices.size() - 1 == i) { + sb.append("'" + device_id + "')"); + } + if(devices.size() - 1 != i) { + sb.append("'" + device_id + "',"); + } + } + param.put("device_ids", sb.toString()); + } + else{ + param.put("device_ids", "('-1')"); + } + param.put("flag", "7"); + param.put("workprocedure_id", workproceduce_id); + JSONArray resultJSONArray = WQL.getWO("MPS_PRODUCEDURE001").addParamMap(param).process().getResultJSONArray(0); + return resultJSONArray; + } + + @Override + @Transactional + public void replaceDevice(JSONObject param) { + String produceorder_code = param.getString("produceorder_code"); + String device_id = param.getString("device_id"); + String device_code = param.getString("device_code"); + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + ProduceshiftorderDto produceshiftorderDto = this.findByCode(produceorder_code); + produceshiftorderDto.setDevice_id(Long.parseLong(device_id)); + produceshiftorderDto.setUpdate_id(currentUserId); + produceshiftorderDto.setUpdate_name(nickName); + produceshiftorderDto.setUpdate_time(DateUtil.now()); + String order_status = produceshiftorderDto.getOrder_status(); + if(!order_status.equals("03") && !order_status.equals("01") && !order_status.equals("00")) { + JSONArray array = new JSONArray(); + JSONObject acsObj = new JSONObject(); + acsObj.put("order_code", produceorder_code); + acsObj.put("device_code", device_code); + array.add(acsObj); + Map resp = wmsToAcsService.replaceDevice(array); + String status = String.valueOf(resp.get("status")); + String message = (String) resp.get("message"); + if(!status.equals("200")) { + throw new BadRequestException(message); + } + } + this.update(produceshiftorderDto); + } + + @Override + public List getUser() { + return userService.list(new QueryWrapper().select("user_id,person_name")); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/wql/ONEPART_QUERY.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/wql/ONEPART_QUERY.wql new file mode 100644 index 00000000..96db9508 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/wql/ONEPART_QUERY.wql @@ -0,0 +1,126 @@ +[交易说明] + 交易名: pda手持服务查询 + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: + +[数据库] + --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 + +[IO定义] + ################################################# + ## 表字段对应输入参数 + ################################################# + 输入.device_code TYPEAS s_string + 输入.key_value TYPEAS s_string + 输入.realproducestart_date TYPEAS s_string + 输入.realproduceend_date TYPEAS s_string + 输入.flag TYPEAS s_string + + + + + + +[临时表] + --这边列出来的临时表就会在运行期动态创建 + +[临时变量] + --所有中间过程变量均可在此处定义 + +[业务过程] + + ########################################## + # 1、输入输出检查 # + ########################################## + + + ########################################## + # 2、主过程前处理 # + ########################################## + + + ########################################## + # 3、业务主过程 # + ########################################## + + IF 输入.flag = "1" + QUERY + SELECT + s.label device_status_name, + r.status_type device_status, + d.device_code, + d.device_name, + d.device_icon, + d.workorder_code + FROM + pdm_bi_device d + LEFT JOIN ( + SELECT + device_code, + status_type, + max( order_num ) AS num + FROM + ( SELECT order_num, device_code, status_type FROM pdm_bi_devicerunstatusrecord ORDER BY device_code, order_num DESC ) c + GROUP BY + c.device_code + ) r ON d.device_code = r.device_code + LEFT JOIN sys_dict s ON s.`value` = r.status_type + AND s.`code` = 'PDM_BI_DEVICERUNSTATUS' + ORDER BY + device_code + LIMIT 10 + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "2" + PAGEQUERY + SELECT + dict1.label shift_type_scode_name, + dict2.label order_status_name, + mater.material_name, + workorder.shift_type_scode, + workprocedure.workprocedure_name, + workorder.workorder_status order_status, + workorder.workorder_id, + workorder.workorder_code, + workorder.current_device_code device_code, + workorder.material_id, + workorder.workprocedure_id, + workorder.plan_qty, + workorder.real_qty, + workorder.report_qty, + workorder.realproducestart_date, + workorder.realproduceend_date + FROM + pdm_produce_workorder workorder + LEFT JOIN md_me_materialbase mater ON workorder.material_id = mater.material_id + LEFT JOIN pdm_bi_workprocedure workprocedure ON workorder.workprocedure_id = workprocedure.workprocedure_id + LEFT JOIN sys_dict dict1 ON dict1.`value` = workorder.shift_type_scode + AND dict1.`code` = 'PDM_BI_SHIFTTYPE' + LEFT JOIN sys_dict dict2 ON dict2.`value` = workorder.workorder_status + AND dict2.`code` = 'MPS_BD_ORDERSTATUS' + WHERE + workorder.is_delete = '0' + OPTION 输入.device_code <> "" + (workorder.current_device_code like CONCAT ('%', 输入.device_code, '%')) + ENDOPTION + OPTION 输入.key_value <> "" + ( + (workorder.workorder_code like CONCAT ('%', 输入.key_value, '%')) or + (mater.material_name like CONCAT ('%', 输入.key_value, '%')) or + (mater.material_code like CONCAT ('%', 输入.key_value, '%')) + ) + ENDOPTION + OPTION 输入.realproducestart_date <> "" + workorder.realproducestart_date >= 输入.realproducestart_date + ENDOPTION + OPTION 输入.realproduceend_date <> "" + workorder.realproduceend_date <= 输入.realproduceend_date + ENDOPTION + ENDSELECT + ENDPAGEQUERY + ENDIF \ No newline at end of file diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda/service/impl/CacheLineHandServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda/service/impl/CacheLineHandServiceImpl.java index c925df1b..5de37f53 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda/service/impl/CacheLineHandServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda/service/impl/CacheLineHandServiceImpl.java @@ -163,8 +163,8 @@ public class CacheLineHandServiceImpl implements CacheLineHandService{ map.put("product_area", whereJson.getString("product_area")); } //任务类型 - if(StrUtil.isNotEmpty(whereJson.getString("task_type"))) { - map.put("task_type", whereJson.getString("task_type")); + if(StrUtil.isNotEmpty(whereJson.getString("code"))) { + map.put("task_type", whereJson.getString("code")); } if(StrUtil.isNotEmpty(task_status)) { task_status = task_status.replace("[\"", "").replace("\"]", "").replace("\"", ""); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls index 1d7aac3d..4f177eb0 100644 Binary files a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls and b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls differ diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/rest/TaskController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/rest/TaskController.java index 4bb730f7..587cacff 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/rest/TaskController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/rest/TaskController.java @@ -82,7 +82,7 @@ public class TaskController { .eq(Dict::getCode, "task_status")), HttpStatus.OK); } - @GetMapping("/taskType") + @PostMapping("/taskType") @Log("获取任务类型列表") @ApiOperation("获取任务类型列表") public ResponseEntity getTaskType() {