fix:缓存线异常处理功能

This commit is contained in:
2023-05-19 14:56:18 +08:00
parent a97b32d3a9
commit 15c59182aa
22 changed files with 1226 additions and 1215 deletions

View File

@@ -1,3 +1,4 @@
/*
package org.nl.wms.masterdata_manage.storage.controller.material; package org.nl.wms.masterdata_manage.storage.controller.material;
@@ -7,8 +8,6 @@ import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.common.anno.Log; import org.nl.common.anno.Log;
import org.nl.wms.masterdata_manage.备份st.service.StructrelamaterialService;
import org.nl.wms.masterdata_manage.备份st.service.dto.StructrelamaterialDto;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
@@ -17,10 +16,12 @@ import org.springframework.web.bind.annotation.*;
import java.util.Map; import java.util.Map;
*/
/** /**
* @author zhouz * @author zhouz
* @date 2021-12-09 * @date 2021-12-09
**/ **//*
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor
@Api(tags = "物料存放设置管理") @Api(tags = "物料存放设置管理")
@@ -83,3 +84,4 @@ public class StructrelamaterialController {
return new ResponseEntity<>(HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
} }
} }
*/

View File

@@ -34,298 +34,296 @@ import java.util.regex.Pattern;
@RequestMapping("/api/cacheLineHand") @RequestMapping("/api/cacheLineHand")
@Slf4j @Slf4j
@SaIgnore @SaIgnore
public class CacheLineHandController{ public class CacheLineHandController {
private final CacheLineHandService cacheLineHandService; private final CacheLineHandService cacheLineHandService;
@PostMapping("/queryMaterial") @PostMapping("/queryMaterial")
@Log("物料查询") @Log("物料查询")
@ApiOperation("物料查询") @ApiOperation("物料查询")
public ResponseEntity<List<MaterialDto>> queryMaterial(@RequestBody JSONObject form) { public ResponseEntity<List<MaterialDto>> queryMaterial(@RequestBody JSONObject form) {
log.info("海亮缓存线手持服务 [查询物料] 接口被请求, 请求参数-{}", form); log.info("海亮缓存线手持服务 [查询物料] 接口被请求, 请求参数-{}", form);
String params = form.getString("search_bar"); String params = form.getString("search_bar");
checkLength(params); checkLength(params);
return new ResponseEntity<>(cacheLineHandService.queryMaterial(params), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.queryMaterial(params), HttpStatus.OK);
} }
@PostMapping("/materialQuery") @PostMapping("/materialQuery")
@Log("物料模糊查询") @Log("物料模糊查询")
@ApiOperation("物料模糊查询") @ApiOperation("物料模糊查询")
public ResponseEntity<JSONArray> materialQuery(@RequestBody JSONObject form) { public ResponseEntity<JSONArray> materialQuery(@RequestBody JSONObject form) {
log.info("海亮缓存线手持服务 [查询物料] 接口被请求, 请求参数-{}", form); log.info("海亮缓存线手持服务 [查询物料] 接口被请求, 请求参数-{}", form);
//String params = form.getString("search_bar"); //String params = form.getString("search_bar");
//checkLength(params); //checkLength(params);
return new ResponseEntity<>(cacheLineHandService.materialQuery(form.getString("search_bar")), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.materialQuery(form.getString("search_bar")), HttpStatus.OK);
} }
@PostMapping("/appUpdate") @PostMapping("/appUpdate")
@Log("app更新") @Log("app更新")
@ApiOperation("app更新") @ApiOperation("app更新")
@SaIgnore @SaIgnore
public ResponseEntity<JSONArray> appUpdate() { public ResponseEntity<JSONArray> appUpdate() {
log.info("海亮缓存线手持服务 [app更新] 接口被请求"); log.info("海亮缓存线手持服务 [app更新] 接口被请求");
return new ResponseEntity<>(cacheLineHandService.appUpdate(), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.appUpdate(), HttpStatus.OK);
} }
/** /**
* 输入搜索条件校验,限制查询参数过短,模糊力度大 * 输入搜索条件校验,限制查询参数过短,模糊力度大
*/ */
private void checkLength(String params) { private void checkLength(String params) {
if(StringUtils.isNotBlank(params)) { if (StringUtils.isNotBlank(params)) {
int length = params.getBytes().length; int length = params.getBytes().length;
//限制查询参数过短,模糊力度大 //限制查询参数过短,模糊力度大
if(Pattern.compile("[0-9a-zA-Z]+").matcher(params).matches() || Pattern.compile("\\d+").matcher(params).matches()) { if (Pattern.compile("[0-9a-zA-Z]+").matcher(params).matches() || Pattern.compile("\\d+").matcher(params).matches()) {
if(length < 5) { if (length < 5) {
throw new BizCoreException("输入条件所查询的内容过多请输入大于4个字的查询条件。"); throw new BizCoreException("输入条件所查询的内容过多请输入大于4个字的查询条件。");
} }
} } else if (Pattern.compile("[\u4e00-\u9fa5]+").matcher(params).matches()) {
else if(Pattern.compile("[\u4e00-\u9fa5]+").matcher(params).matches()) { if (length < 9) {
if(length < 9) {
throw new BizCoreException("输入条件所查询的内容过多请输入大于3个字的查询条件。");
}
}
else if(length < 4) {
throw new BizCoreException("输入条件所查询的内容过多请输入大于3个字的查询条件。"); throw new BizCoreException("输入条件所查询的内容过多请输入大于3个字的查询条件。");
} }
} } else if (length < 4) {
} throw new BizCoreException("输入条件所查询的内容过多请输入大于3个字的查询条件。");
}
}
}
@PostMapping("/semiMaterialSpecQuery") @PostMapping("/semiMaterialSpecQuery")
@Log("规格下拉框查询") @Log("规格下拉框查询")
@ApiOperation("规格下拉框查询") @ApiOperation("规格下拉框查询")
public ResponseEntity<JSONArray> semiMaterialSpecQuery(@RequestBody JSONObject form) { public ResponseEntity<JSONArray> semiMaterialSpecQuery(@RequestBody JSONObject form) {
log.info("海亮缓存线手持服务 [规格下拉框查询] 接口被请求, 请求参数-{}", form); log.info("海亮缓存线手持服务 [规格下拉框查询] 接口被请求, 请求参数-{}", form);
return new ResponseEntity<>(cacheLineHandService.semiMaterialSpecQuery(form.getString("search_bar")), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.semiMaterialSpecQuery(form.getString("search_bar")), HttpStatus.OK);
} }
@PostMapping("/workprocedureQuery") @PostMapping("/workprocedureQuery")
@Log("工序下拉框查询") @Log("工序下拉框查询")
@ApiOperation("工序下拉框查询") @ApiOperation("工序下拉框查询")
public ResponseEntity<JSONArray> workProcedureQuery(@RequestBody JSONObject form) { public ResponseEntity<JSONArray> workProcedureQuery(@RequestBody JSONObject form) {
log.info("海亮缓存线手持服务 [工序下拉框查询] 接口被请求, 请求参数-{}", form); log.info("海亮缓存线手持服务 [工序下拉框查询] 接口被请求, 请求参数-{}", form);
return new ResponseEntity<>(cacheLineHandService.workProcedureQuery(form.getString("search_bar")), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.workProcedureQuery(form.getString("search_bar")), HttpStatus.OK);
} }
@PostMapping("/deviceQuery") @PostMapping("/deviceQuery")
@Log("缓存线设备下拉框查询") @Log("缓存线设备下拉框查询")
@ApiOperation("缓存线设备下拉框查询") @ApiOperation("缓存线设备下拉框查询")
public ResponseEntity<JSONArray> deviceQuery(@RequestBody JSONObject form) { public ResponseEntity<JSONArray> deviceQuery(@RequestBody JSONObject form) {
log.info("海亮缓存线手持服务 [缓存线设备下拉框查询] 接口被请求, 请求参数-{}", form); log.info("海亮缓存线手持服务 [缓存线设备下拉框查询] 接口被请求, 请求参数-{}", form);
return new ResponseEntity<>(cacheLineHandService.deviceQuery(form.getString("search_bar")), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.deviceQuery(form.getString("search_bar")), HttpStatus.OK);
} }
@PostMapping("/instStatusQuery") @PostMapping("/instStatusQuery")
@Log("指令状态下拉框查询") @Log("指令状态下拉框查询")
@ApiOperation("指令状态下拉框查询") @ApiOperation("指令状态下拉框查询")
public ResponseEntity<JSONArray> instStatusQuery(@RequestBody JSONObject form) { public ResponseEntity<JSONArray> instStatusQuery(@RequestBody JSONObject form) {
log.info("海亮缓存线手持服务 [指令状态下拉框查询] 接口被请求, 请求参数-{}", form); log.info("海亮缓存线手持服务 [指令状态下拉框查询] 接口被请求, 请求参数-{}", form);
return new ResponseEntity<>(cacheLineHandService.instStatusQuery(form.getString("search_bar")), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.instStatusQuery(form.getString("search_bar")), HttpStatus.OK);
} }
@PostMapping("/instPageQuery") @PostMapping("/instPageQuery")
@Log("任务操作-查询") @Log("任务操作-查询")
@ApiOperation("任务操作-查询") @ApiOperation("任务操作-查询")
public ResponseEntity<Object> instPageQuery(@RequestBody Map<String,String> param, Pageable page) { public ResponseEntity<Object> instPageQuery(@RequestBody Map<String, String> param, Pageable page) {
log.info("海亮缓存线手持服务 [任务操作-查询] 接口被请求, 请求参数-{}", param); log.info("海亮缓存线手持服务 [任务操作-查询] 接口被请求, 请求参数-{}", param);
if(null == param) { if (null == param) {
throw new BizCoreException(ResultCode.VALIDATE_FAILED); throw new BizCoreException(ResultCode.VALIDATE_FAILED);
} }
return new ResponseEntity<>(cacheLineHandService.instPageQuery(param, page), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.instPageQuery(param, page), HttpStatus.OK);
} }
@PostMapping("/instOperation") @PostMapping("/instOperation")
@Log("任务操作") @Log("任务操作")
@ApiOperation("任务操作") @ApiOperation("任务操作")
public ResponseEntity<Object> instOperation(@RequestBody JSONObject param) { public ResponseEntity<Object> instOperation(@RequestBody JSONObject param) {
log.info("海亮缓存线手持服务 [任务操作] 接口被请求, 请求参数-{}", param); log.info("海亮缓存线手持服务 [任务操作] 接口被请求, 请求参数-{}", param);
//任务类型和任务ID校验instruct_uuid为前端参数命名本来应为task_id //任务类型和任务ID校验instruct_uuid为前端参数命名本来应为task_id
if(StringUtils.isBlank(param.getString("instruct_uuid")) || StringUtils.isBlank(param.getString("opt_type"))) { if (StringUtils.isBlank(param.getString("instruct_uuid")) || StringUtils.isBlank(param.getString("opt_type"))) {
throw new BizCoreException("ResultCode.VALIDATE_FAILED"); throw new BizCoreException("ResultCode.VALIDATE_FAILED");
} }
return new ResponseEntity<>(cacheLineHandService.instOperation(param), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.instOperation(param), HttpStatus.OK);
} }
@PostMapping("/cacheLineOutBoxExceptionQuery") @PostMapping("/cacheLineOutBoxExceptionQuery")
@Log("缓存线出箱异常-查询") @Log("缓存线出箱异常-查询")
@ApiOperation("缓存线出箱异常-查询") @ApiOperation("缓存线出箱异常-查询")
public ResponseEntity<JSONArray> cacheLineOutBoxExceptionQuery(@RequestBody JSONObject param) { public ResponseEntity<JSONArray> cacheLineOutBoxExceptionQuery(@RequestBody JSONObject param) {
log.info("海亮缓存线手持服务 [缓存线出箱异常-查询] 接口被请求, 请求参数-{}", param); log.info("海亮缓存线手持服务 [缓存线出箱异常-查询] 接口被请求, 请求参数-{}", param);
//参数校验 //参数校验
if(StringUtils.isBlank(param.getString("wcsdevice_code"))) { if (StringUtils.isBlank(param.getString("wcsdevice_code"))) {
throw new BizCoreException("请选择缓存线并输入缓存线位置编号再查询"); throw new BizCoreException("请选择缓存线并输入缓存线位置编号再查询");
} }
if(StringUtils.isBlank(param.getString("position_code"))) { if (StringUtils.isBlank(param.getString("position_code"))) {
throw new BizCoreException("请输入缓存线位置编号再查询"); throw new BizCoreException("请输入缓存线位置编号再查询");
} }
return new ResponseEntity<>(cacheLineHandService.cacheLineOutBoxExceptionQuery(param), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.cacheLineOutBoxExceptionQuery(param), HttpStatus.OK);
} }
@PostMapping("/cacheLineOutBoxExceptionConfirm") @PostMapping("/cacheLineOutBoxExceptionConfirm")
@Log("缓存线出箱异常-确认") @Log("缓存线出箱异常-确认")
@ApiOperation("缓存线出箱异常-确认") @ApiOperation("缓存线出箱异常-确认")
public ResponseEntity<Object> cacheLineOutBoxExceptionConfirm(@RequestBody JSONObject param) { public ResponseEntity<Object> cacheLineOutBoxExceptionConfirm(@RequestBody JSONObject param) {
log.info("海亮缓存线手持服务 [缓存线出箱异常-确认] 接口被请求, 请求参数-{}", param); log.info("海亮缓存线手持服务 [缓存线出箱异常-确认] 接口被请求, 请求参数-{}", param);
//参数校验 //参数校验
if(StringUtils.isBlank(param.getString("vehicle_code"))) { if (StringUtils.isBlank(param.getString("vehicle_code"))) {
throw new BizCoreException("请输入料箱码"); throw new BizCoreException("请输入料箱码");
} }
if(StringUtils.isBlank(param.getString("wcsdevice_code")) || StringUtils.isBlank(param.getString("position_code"))) { if (StringUtils.isBlank(param.getString("wcsdevice_code")) || StringUtils.isBlank(param.getString("position_code"))) {
throw new BizCoreException("请输入缓存线位置编号与缓存线编号"); throw new BizCoreException("请输入缓存线位置编号与缓存线编号");
} }
return new ResponseEntity<>(cacheLineHandService.cacheLineOutBoxExceptionConfirm(param), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.cacheLineOutBoxExceptionConfirm(param), HttpStatus.OK);
} }
@PostMapping("/inOutExceptionInstQuery") @PostMapping("/inOutExceptionInstQuery")
@Log("缓存线扫码异常-查询") @Log("缓存线扫码异常-查询")
@ApiOperation("缓存线扫码异常-查询") @ApiOperation("缓存线扫码异常-查询")
public ResponseEntity<JSONArray> inOutExceptionInstQuery(@RequestBody JSONObject param) { public ResponseEntity<Object> inOutExceptionInstQuery(@RequestBody JSONObject param) {
log.info("海亮缓存线手持服务 [缓存线扫码异常-查询] 接口被·请求, 请求参数-{}", param); log.info("海亮缓存线手持服务 [缓存线扫码异常-查询] 接口被·请求, 请求参数-{}", param);
//参数校验 //参数校验
if(StringUtils.isBlank(param.getString("wcsdevice_code"))) { if (StringUtils.isBlank(param.getString("wcsdevice_code"))) {
throw new BizCoreException("请选择缓存线编号!"); throw new BizCoreException("请选择缓存线编号!");
} }
return new ResponseEntity<>(cacheLineHandService.inOutExceptionInstQuery(param), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.inOutExceptionInstQuery(param), HttpStatus.OK);
} }
@PostMapping("/inOutExceptionInstConfirm") @PostMapping("/inOutExceptionInstConfirm")
@Log("扫码异常确认") @Log("扫码异常确认")
@ApiOperation("扫码异常确认") @ApiOperation("扫码异常确认")
public ResponseEntity<Object> inOutExceptionInstConfirm(@RequestBody JSONObject param) { public ResponseEntity<Object> inOutExceptionInstConfirm(@RequestBody JSONObject param) {
log.info("海亮缓存线手持服务 [扫码异常确认] 接口被请求, 请求参数-{}", param); log.info("海亮缓存线手持服务 [扫码异常确认] 接口被请求, 请求参数-{}", param);
//参数校验 //参数校验
if(StringUtils.isBlank(param.getString("type")) || StringUtils.isBlank(param.getString("wcsdevice_code")) || StringUtils.isBlank(param.getString("vehicle_code"))) { if (StringUtils.isBlank(param.getString("type")) || StringUtils.isBlank(param.getString("wcsdevice_code")) || StringUtils.isBlank(param.getString("vehicle_code"))) {
throw new BizCoreException("请确认缓存线,位置,料箱码是否都已选择或填入!"); throw new BizCoreException("请确认缓存线,位置,料箱码是否都已选择或填入!");
} }
return new ResponseEntity<>(cacheLineHandService.inOutExceptionInstConfirm(param), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.inOutExceptionInstConfirm(param), HttpStatus.OK);
} }
@PostMapping("/cacheLineMaterInfoQuery") @PostMapping("/cacheLineMaterInfoQuery")
@Log("缓存线料箱条码查询料箱信息") @Log("缓存线料箱条码查询料箱信息")
@ApiOperation("缓存线料箱条码查询料箱信息") @ApiOperation("缓存线料箱条码查询料箱信息")
public ResponseEntity<JSONArray> cacheLineMaterInfoQuery(@RequestBody JSONObject param) { public ResponseEntity<JSONArray> cacheLineMaterInfoQuery(@RequestBody JSONObject param) {
log.info("海亮缓存线手持服务 [缓存线料箱条码查询料箱信息] 接口被请求, 请求参数-{}", param); log.info("海亮缓存线手持服务 [缓存线料箱条码查询料箱信息] 接口被请求, 请求参数-{}", param);
return new ResponseEntity<>(cacheLineHandService.cacheLineMaterInfoQuery(param), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.cacheLineMaterInfoQuery(param), HttpStatus.OK);
} }
@PostMapping("/inOutEmptyBox") @PostMapping("/inOutEmptyBox")
@Log("空箱初始化--出入空箱") @Log("空箱初始化--出入空箱")
@ApiOperation("空箱初始化--出入空箱") @ApiOperation("空箱初始化--出入空箱")
public ResponseEntity<Object> inOutEmptyBox(@RequestBody JSONObject param) { public ResponseEntity<Object> inOutEmptyBox(@RequestBody JSONObject param) {
log.info("海亮缓存线手持服务 [空箱初始化--出入空箱] 接口被请求, 请求参数-{}", param); log.info("海亮缓存线手持服务 [空箱初始化--出入空箱] 接口被请求, 请求参数-{}", param);
//参数校验 //参数校验
if(StringUtils.isBlank(param.getString("inOut_type")) || StringUtils.isBlank(param.getString("wcsdevice_code")) || StringUtils.isBlank(param.getString("vehicle_code"))) { if (StringUtils.isBlank(param.getString("inOut_type")) || StringUtils.isBlank(param.getString("wcsdevice_code")) || StringUtils.isBlank(param.getString("vehicle_code"))) {
throw new BizCoreException(ResultCode.VALIDATE_FAILED); throw new BizCoreException(ResultCode.VALIDATE_FAILED);
} }
return new ResponseEntity<>(cacheLineHandService.inOutEmptyBox(param), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.inOutEmptyBox(param), HttpStatus.OK);
} }
@PostMapping("/setfullBox") @PostMapping("/setfullBox")
@Log("设置满框") @Log("设置满框")
@ApiOperation("设置满框") @ApiOperation("设置满框")
public ResponseEntity<Object> setfullBox(@RequestBody JSONObject param) { public ResponseEntity<Object> setfullBox(@RequestBody JSONObject param) {
log.info("海亮缓存线手持服务 [设置满框] 接口被请求, 请求参数-{}", param); log.info("海亮缓存线手持服务 [设置满框] 接口被请求, 请求参数-{}", param);
return new ResponseEntity<>(cacheLineHandService.setfullBox(param), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.setfullBox(param), HttpStatus.OK);
} }
@PostMapping("/setEmptyBox") @PostMapping("/setEmptyBox")
@Log("设置空框") @Log("设置空框")
@ApiOperation("设置空框") @ApiOperation("设置空框")
public ResponseEntity<Object> setEmptyBox(@RequestBody JSONObject param) { public ResponseEntity<Object> setEmptyBox(@RequestBody JSONObject param) {
log.info("海亮缓存线手持服务 [设置空框] 接口被请求, 请求参数-{}", param); log.info("海亮缓存线手持服务 [设置空框] 接口被请求, 请求参数-{}", param);
return new ResponseEntity<>(cacheLineHandService.setEmptyBox(param), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.setEmptyBox(param), HttpStatus.OK);
} }
@PostMapping("/deleteBox") @PostMapping("/deleteBox")
@Log("删除箱子") @Log("删除箱子")
@ApiOperation("删除箱子") @ApiOperation("删除箱子")
public ResponseEntity<Object> deleteBox(@RequestBody JSONObject param) { public ResponseEntity<Object> deleteBox(@RequestBody JSONObject param) {
log.info("海亮缓存线手持服务 [设置空框] 接口被请求, 请求参数-{}", param); log.info("海亮缓存线手持服务 [设置空框] 接口被请求, 请求参数-{}", param);
return new ResponseEntity<>(cacheLineHandService.deleteBox(param), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.deleteBox(param), HttpStatus.OK);
} }
@PostMapping("/agvInBoxExceptionQuery") @PostMapping("/agvInBoxExceptionQuery")
@Log("AGV入箱异常-查询") @Log("AGV入箱异常-查询")
@ApiOperation("AGV入箱异常-查询") @ApiOperation("AGV入箱异常-查询")
public ResponseEntity<JSONArray> agvInBoxExceptionQuery(@RequestBody JSONObject param) { public ResponseEntity<JSONArray> agvInBoxExceptionQuery(@RequestBody JSONObject param) {
log.info("海亮缓存线手持服务 [AGV入箱异常-查询] 接口被请求, 请求参数-{}", param); log.info("海亮缓存线手持服务 [AGV入箱异常-查询] 接口被请求, 请求参数-{}", param);
return new ResponseEntity<>(cacheLineHandService.agvInBoxExceptionQuery(param), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.agvInBoxExceptionQuery(param), HttpStatus.OK);
} }
@PostMapping("/agvInBoxExceptionConfirm") @PostMapping("/agvInBoxExceptionConfirm")
@Log("AGV入箱异常-确认") @Log("AGV入箱异常-确认")
@ApiOperation("AGV入箱异常-确认") @ApiOperation("AGV入箱异常-确认")
public ResponseEntity<Object> agvInBoxExceptionConfirm(@RequestBody JSONObject param) { public ResponseEntity<Object> agvInBoxExceptionConfirm(@RequestBody JSONObject param) {
log.info("海亮缓存线手持服务 [AGV入箱异常-确认] 接口被请求, 请求参数-{}", param); log.info("海亮缓存线手持服务 [AGV入箱异常-确认] 接口被请求, 请求参数-{}", param);
cacheLineHandService.agvInBoxExceptionConfirm(param); cacheLineHandService.agvInBoxExceptionConfirm(param);
return new ResponseEntity<>(HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
} }
@PostMapping("/agvOutBoxExceptionQuery") @PostMapping("/agvOutBoxExceptionQuery")
@Log("AGV异常-查询") @Log("AGV异常-查询")
@ApiOperation("AGV异常-查询") @ApiOperation("AGV异常-查询")
public ResponseEntity<JSONArray> agvOutBoxExceptionQuery(@RequestBody JSONObject param) { public ResponseEntity<JSONArray> agvOutBoxExceptionQuery(@RequestBody JSONObject param) {
log.info("海亮缓存线手持服务 [AGV异常-查询] 接口被请求, 请求参数-{}", param); log.info("海亮缓存线手持服务 [AGV异常-查询] 接口被请求, 请求参数-{}", param);
return new ResponseEntity<>(cacheLineHandService.agvOutBoxExceptionQuery(param), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.agvOutBoxExceptionQuery(param), HttpStatus.OK);
} }
@PostMapping("/agvOutBoxExceptionConfirm") @PostMapping("/agvOutBoxExceptionConfirm")
@Log("AGV异常-确认") @Log("AGV异常-确认")
@ApiOperation("AGV异常-确认") @ApiOperation("AGV异常-确认")
public ResponseEntity<Object> agvOutBoxExceptionConfirm(@RequestBody JSONObject param) { public ResponseEntity<Object> agvOutBoxExceptionConfirm(@RequestBody JSONObject param) {
log.info("海亮缓存线手持服务 [AGV异常-确认] 接口被请求, 请求参数-{}", param); log.info("海亮缓存线手持服务 [AGV异常-确认] 接口被请求, 请求参数-{}", param);
cacheLineHandService.agvOutBoxExceptionConfirm(param); cacheLineHandService.agvOutBoxExceptionConfirm(param);
return new ResponseEntity<>(HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
} }
@PostMapping("/setBlankPos") @PostMapping("/setBlankPos")
@Log("设置缓存线货位为空位置") @Log("设置缓存线货位为空位置")
@ApiOperation("设置缓存线货位为空位置") @ApiOperation("设置缓存线货位为空位置")
public ResponseEntity<Object> setBlankPos(@RequestBody JSONObject param) { public ResponseEntity<Object> setBlankPos(@RequestBody JSONObject param) {
log.info("海亮缓存线手持服务 [设置缓存线货位为空位置] 接口被请求, 请求参数-{}", param); log.info("海亮缓存线手持服务 [设置缓存线货位为空位置] 接口被请求, 请求参数-{}", param);
cacheLineHandService.setBlankPos(param); cacheLineHandService.setBlankPos(param);
return new ResponseEntity<>(HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
} }
@PostMapping("/cacheLineExcepOpt") @PostMapping("/cacheLineExcepOpt")
@Log("缓存线异常处理") @Log("缓存线异常处理")
@ApiOperation("缓存线异常处理") @ApiOperation("缓存线异常处理")
public ResponseEntity<Object> cacheLineExcepOpt(@RequestBody JSONObject param) { public ResponseEntity<Object> cacheLineExcepOpt(@RequestBody JSONObject param) {
log.info("海亮缓存线手持服务 [缓存线异常处理] 接口被请求, 请求参数-{}", param); log.info("海亮缓存线手持服务 [缓存线异常处理] 接口被请求, 请求参数-{}", param);
//参数校验 //参数校验
if(StringUtils.isBlank(param.getString("wcsdevice_code")) || StringUtils.isBlank(param.getString("opt_type"))) { if (StringUtils.isBlank(param.getString("wcsdevice_code")) || StringUtils.isBlank(param.getString("opt_type"))) {
throw new BizCoreException(ResultCode.VALIDATE_FAILED); throw new BizCoreException(ResultCode.VALIDATE_FAILED);
} }
return new ResponseEntity<>(cacheLineHandService.cacheLineExcepOpt(param), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.cacheLineExcepOpt(param), HttpStatus.OK);
} }
@PostMapping("/pourMaterial") @PostMapping("/pourMaterial")
@Log("倒料操作") @Log("倒料操作")
@ApiOperation("倒料操作") @ApiOperation("倒料操作")
public ResponseEntity<Object> pourMaterial(@RequestBody JSONObject param) { public ResponseEntity<Object> pourMaterial(@RequestBody JSONObject param) {
log.info("海亮缓存线手持服务 [倒料操作] 接口被请求, 请求参数-{}", param); log.info("海亮缓存线手持服务 [倒料操作] 接口被请求, 请求参数-{}", param);
cacheLineHandService.pourMaterial(param); cacheLineHandService.pourMaterial(param);
return new ResponseEntity<>(HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
} }
@PostMapping("/getCacheLine") @PostMapping("/getCacheLine")
@Log("缓存线下拉框") @Log("缓存线下拉框")
@ApiOperation("缓存线下拉框") @ApiOperation("缓存线下拉框")
public ResponseEntity<JSONArray> getCacheLine(@RequestBody JSONObject param) { public ResponseEntity<JSONArray> getCacheLine(@RequestBody JSONObject param) {
log.info("海亮缓存线手持服务 [缓存线盘点-缓存线下拉框] 接口被请求, 请求参数-{}", param); log.info("海亮缓存线手持服务 [缓存线盘点-缓存线下拉框] 接口被请求, 请求参数-{}", param);
return new ResponseEntity<>(cacheLineHandService.getCacheLine(param), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.getCacheLine(param), HttpStatus.OK);
} }
@PostMapping("/getProductArea") @PostMapping("/getProductArea")
@Log("获取生产区域下拉框") @Log("获取生产区域下拉框")
@ApiOperation("获取生产区域下拉框") @ApiOperation("获取生产区域下拉框")
public ResponseEntity<JSONArray> getProductArea() { public ResponseEntity<JSONArray> getProductArea() {
return new ResponseEntity<>(cacheLineHandService.getProductArea(), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.getProductArea(), HttpStatus.OK);
} }
@PostMapping("/getCacheLineMaterialInfo") @PostMapping("/getCacheLineMaterialInfo")
@Log("缓存线物料信息盘点") @Log("缓存线物料信息盘点")
@ApiOperation("缓存线物料信息盘点") @ApiOperation("缓存线物料信息盘点")
public ResponseEntity<JSONArray> getCacheLineMaterialInfo(@RequestBody JSONObject param) { public ResponseEntity<Object> getCacheLineMaterialInfo(@RequestBody JSONObject param) {
log.info("海亮缓存线手持服务 [缓存线盘点-缓存线物料信息盘点] 接口被请求, 请求参数-{}", param); log.info("海亮缓存线手持服务 [缓存线盘点-缓存线物料信息盘点] 接口被请求, 请求参数-{}", param);
return new ResponseEntity<>(cacheLineHandService.getCacheLineMaterialInfo(param), HttpStatus.OK); return new ResponseEntity<>(cacheLineHandService.getCacheLineMaterialInfo(param), HttpStatus.OK);
} }
} }

View File

@@ -134,7 +134,7 @@ public interface CacheLineHandService{
* @author gbx * @author gbx
* @date 2023/3/24 * @date 2023/3/24
*/ */
JSONArray inOutExceptionInstQuery(JSONObject param); List<Map> inOutExceptionInstQuery(JSONObject param);
/** /**
* 扫码异常确认 * 扫码异常确认
@@ -286,7 +286,7 @@ public interface CacheLineHandService{
* @param param * @param param
* @return * @return
*/ */
JSONArray getCacheLineMaterialInfo(JSONObject param); List<Map> getCacheLineMaterialInfo(JSONObject param);
/** /**
* 获取生产区域下拉框 * 获取生产区域下拉框

View File

@@ -173,17 +173,17 @@
IF 输入.flag = "7" IF 输入.flag = "7"
QUERY QUERY
SELECT SELECT
p.point_code as value, device_code AS value,
p.point_name as text device_name AS text
FROM FROM
sch_base_point p pdm_bi_device
WHERE WHERE
p.region_code = 'A1_HCX' device_code like '%HCX%'
OPTION 输入.product_area <> "" OPTION 输入.product_area <> ""
p.product_area = 输入.product_area product_area = 输入.product_area
ENDOPTION ENDOPTION
ORDER BY ORDER BY
p.point_code device_code
ENDSELECT ENDSELECT
ENDQUERY ENDQUERY
ENDIF ENDIF
@@ -210,13 +210,9 @@
LEFT JOIN sch_cacheline_vehilematerial ON sch_cacheline_position.vehicle_code = sch_cacheline_vehilematerial.vehicle_code LEFT JOIN sch_cacheline_vehilematerial ON sch_cacheline_position.vehicle_code = sch_cacheline_vehilematerial.vehicle_code
LEFT JOIN md_me_materialbase ON md_me_materialbase.material_id = sch_cacheline_vehilematerial.material_id LEFT JOIN md_me_materialbase ON md_me_materialbase.material_id = sch_cacheline_vehilematerial.material_id
WHERE WHERE
1 = 1 sch_cacheline_position.product_area = 输入.product_area
OPTION 输入.product_area <> "" AND
sch_cacheline_position.product_area = 输入.product_area sch_cacheline_position.cacheline_code = 输入.cacheline_code
ENDOPTION
OPTION 输入.cacheline_code <> ""
sch_cacheline_position.cacheline_code = 输入.cacheline_code
ENDOPTION
ORDER BY ORDER BY
sch_cacheline_position.cacheline_code, sch_cacheline_position.layer_num, sch_cacheline_position.positionorder_no, sch_cacheline_position.cache_line_no sch_cacheline_position.cacheline_code, sch_cacheline_position.layer_num, sch_cacheline_position.positionorder_no, sch_cacheline_position.cache_line_no
ENDSELECT ENDSELECT

View File

@@ -1,8 +1,12 @@
package org.nl.wms.scheduler_manage.service.cacheline.dao.mapper; package org.nl.wms.scheduler_manage.service.cacheline.dao.mapper;
import org.apache.ibatis.annotations.Param;
import org.nl.wms.scheduler_manage.service.cacheline.dao.SchCachelinePosition; import org.nl.wms.scheduler_manage.service.cacheline.dao.SchCachelinePosition;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import java.util.Map;
/** /**
* <p> * <p>
* 缓存线位置表 Mapper 接口 * 缓存线位置表 Mapper 接口
@@ -13,4 +17,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/ */
public interface SchCachelinePositionMapper extends BaseMapper<SchCachelinePosition> { public interface SchCachelinePositionMapper extends BaseMapper<SchCachelinePosition> {
List<Map> getPositionInfo(@Param("map") Map map);
} }

View File

@@ -1,8 +1,12 @@
package org.nl.wms.scheduler_manage.service.cacheline.dao.mapper; package org.nl.wms.scheduler_manage.service.cacheline.dao.mapper;
import org.apache.ibatis.annotations.Param;
import org.nl.wms.scheduler_manage.service.cacheline.dao.SchCachelineVehilematerial; import org.nl.wms.scheduler_manage.service.cacheline.dao.SchCachelineVehilematerial;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import java.util.Map;
/** /**
* <p> * <p>
* 缓存线载具物料表 Mapper 接口 * 缓存线载具物料表 Mapper 接口
@@ -13,4 +17,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/ */
public interface SchCachelineVehilematerialMapper extends BaseMapper<SchCachelineVehilematerial> { public interface SchCachelineVehilematerialMapper extends BaseMapper<SchCachelineVehilematerial> {
List<Map> getErrorVeh(@Param("cacheline_code") String cacheline_code);
} }

View File

@@ -2,4 +2,34 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.scheduler_manage.service.cacheline.dao.mapper.SchCachelinePositionMapper"> <mapper namespace="org.nl.wms.scheduler_manage.service.cacheline.dao.mapper.SchCachelinePositionMapper">
<select id="getPositionInfo" resultType="java.util.Map">
SELECT
scp.cacheline_code,
scp.position_code,
scp.position_name,
scp.vehicle_code,
scp.layer_num,
scp.positionorder_no as seat_order_num,
sch_cacheline_vehilematerial.workprocedure_code,
sch_cacheline_vehilematerial.workprocedure_name,
sch_cacheline_vehilematerial.material_id as material_uuid,
mb.material_code,
mb.material_name,
mb.material_spec,
sch_cacheline_vehilematerial.quantity,
sch_cacheline_vehilematerial.weight,
IF(length(scp.vehicle_code) > 0, IFNULL(sch_cacheline_vehilematerial.vehicle_status, 4), 1) AS vehicle_status
FROM
sch_cacheline_position scp
LEFT JOIN sch_cacheline_vehilematerial ON scp.vehicle_code = sch_cacheline_vehilematerial.vehicle_code
LEFT JOIN md_me_materialbase mb ON mb.material_id = sch_cacheline_vehilematerial.material_id
<where>
scp.cacheline_code = #{map.cacheline_code}
<if test="map.product_area != null and map.product_area != ''">
and scp.product_area = #{map.product_area}
</if>
</where>
ORDER BY
scp.cacheline_code, scp.layer_num, scp.positionorder_no, scp.cache_line_no
</select>
</mapper> </mapper>

View File

@@ -2,4 +2,26 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.scheduler_manage.service.cacheline.dao.mapper.SchCachelineVehilematerialMapper"> <mapper namespace="org.nl.wms.scheduler_manage.service.cacheline.dao.mapper.SchCachelineVehilematerialMapper">
<select id="getErrorVeh" resultType="java.util.Map">
SELECT
*
FROM
(
SELECT
v.vehicle_code,
p.position_code,
p.cacheline_code
FROM
sch_cacheline_vehilematerial v
LEFT JOIN sch_cacheline_position p ON v.vehicle_code = p.vehicle_code
WHERE
v.err_type = 2
AND v.is_delete = 0
) a
<where>
<if test="cacheline_code != null and cacheline_code != ''">
a.cacheline_code = #{cacheline_code}
</if>
</where>
</select>
</mapper> </mapper>

View File

@@ -59,8 +59,8 @@ public class StIvtIostorinvYlOutController {
} }
@PostMapping("/getIODtl") @PostMapping("/getIODtl")
@Log("查询库分配明细") @Log("查询库分配明细")
@ApiOperation("查询库分配明细") @ApiOperation("查询库分配明细")
public ResponseEntity<Object> getIODtl(@RequestBody JSONObject whereJson) { public ResponseEntity<Object> getIODtl(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(iostorinvOutYlService.getInvDtl(whereJson), HttpStatus.OK); return new ResponseEntity<>(iostorinvOutYlService.getInvDtl(whereJson), HttpStatus.OK);
} }

View File

@@ -24,7 +24,7 @@ public interface IStIvtIostorinvdtlYlService extends IService<StIvtIostorinvdtlY
* @param iostorinvCp_id * @param iostorinvCp_id
* @return * @return
*/ */
double create(JSONArray row, String iostorinvCp_id); double create(JSONArray row, String iostorinvCp_id,String io_type);
List<Map> getDtlList(JSONObject json); List<Map> getDtlList(JSONObject json);
} }

View File

@@ -202,7 +202,7 @@ public class StIvtIostorinvYl implements Serializable {
/** /**
* 车间标识 * 车间标识
*/ */
private String product_area; private String workshop_id;
} }

View File

@@ -19,6 +19,7 @@
mst.total_qty, mst.total_qty,
mst.detail_count, mst.detail_count,
mst.bill_status, mst.bill_status,
mst.workshop_id,
mst.remark, mst.remark,
mst.create_id, mst.create_id,
mst.create_name, mst.create_name,
@@ -28,12 +29,9 @@
DATE_FORMAT( mst.update_time,'%Y-%m-%d %H:%i:%s') AS update_time, DATE_FORMAT( mst.update_time,'%Y-%m-%d %H:%i:%s') AS update_time,
mst.confirm_id, mst.confirm_id,
mst.confirm_name, mst.confirm_name,
DATE_FORMAT( mst.confirm_time,'%Y-%m-%d %H:%i:%s') AS confirm_time, DATE_FORMAT( mst.confirm_time,'%Y-%m-%d %H:%i:%s') AS confirm_time
dis.struct_id,
dis.sect_id
FROM FROM
st_ivt_iostorinv_yl mst st_ivt_iostorinv_yl mst
LEFT JOIN st_ivt_iostorinvdis_yl dis ON dis.iostorinv_id = mst.iostorinv_id
<where> <where>
mst.is_delete = '0' mst.is_delete = '0'
AND AND

View File

@@ -30,7 +30,8 @@
mst.confirm_name, mst.confirm_name,
DATE_FORMAT( mst.confirm_time,'%Y-%m-%d %H:%i:%s') AS confirm_time, DATE_FORMAT( mst.confirm_time,'%Y-%m-%d %H:%i:%s') AS confirm_time,
dis.struct_id, dis.struct_id,
dis.sect_id dis.sect_id,
mst.workshop_id
FROM FROM
st_ivt_iostorinv_yl mst st_ivt_iostorinv_yl mst
LEFT JOIN st_ivt_iostorinvdis_yl dis ON dis.iostorinv_id = mst.iostorinv_id LEFT JOIN st_ivt_iostorinvdis_yl dis ON dis.iostorinv_id = mst.iostorinv_id

View File

@@ -30,6 +30,7 @@ import org.nl.wms.storage_manage.rawmanage.service.iostorInv.IStIvtIostorinvdtlY
import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dao.StIvtIostorinvYl; import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dao.StIvtIostorinvYl;
import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dao.StIvtIostorinvdisYl; import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dao.StIvtIostorinvdisYl;
import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dao.StIvtIostorinvdtlYl; import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dao.StIvtIostorinvdtlYl;
import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dao.mapper.StIvtIostorinvOutYlMapper;
import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dao.mapper.StIvtIostorinvYlMapper; import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dao.mapper.StIvtIostorinvYlMapper;
import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dto.YlIostorInvQuery; import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dto.YlIostorInvQuery;
import org.nl.wms.storage_manage.rawmanage.service.structIvt.IStIvtStructivtYlService; import org.nl.wms.storage_manage.rawmanage.service.structIvt.IStIvtStructivtYlService;
@@ -59,7 +60,7 @@ public class StIvtIostorinvOutYlServiceImpl extends ServiceImpl<StIvtIostorinvYl
private IStIvtIostorinvdtlYlService iostorinvdtlYlService; private IStIvtIostorinvdtlYlService iostorinvdtlYlService;
@Autowired @Autowired
private StIvtIostorinvYlMapper iostorinvYlMapper; private StIvtIostorinvOutYlMapper ivtIostorinvOutYlMapper;
@Autowired @Autowired
private IStIvtIostorinvdisYlService iostorinvdisYlService; private IStIvtIostorinvdisYlService iostorinvdisYlService;
@@ -77,7 +78,7 @@ public class StIvtIostorinvOutYlServiceImpl extends ServiceImpl<StIvtIostorinvYl
@Override @Override
public Object pageQuery(YlIostorInvQuery query, PageQuery pageQuery) { public Object pageQuery(YlIostorInvQuery query, PageQuery pageQuery) {
Page<Object> page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize()); Page<Object> page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize());
List<Map> mst_detail = iostorinvYlMapper.getMstDetail(query, pageQuery); List<Map> mst_detail = ivtIostorinvOutYlMapper.getMstDetail(query, pageQuery);
TableDataInfo<Map> build = TableDataInfo.build(mst_detail); TableDataInfo<Map> build = TableDataInfo.build(mst_detail);
build.setTotalElements(page.getTotal()); build.setTotalElements(page.getTotal());
return build; return build;
@@ -94,7 +95,7 @@ public class StIvtIostorinvOutYlServiceImpl extends ServiceImpl<StIvtIostorinvYl
this.save(stIvtIostorinvYl); this.save(stIvtIostorinvYl);
// 调用明细表 插入/更新方法 // 调用明细表 插入/更新方法
iostorinvdtlYlService.create(rows, stIvtIostorinvYl.getIostorinv_id()); iostorinvdtlYlService.create(rows, stIvtIostorinvYl.getIostorinv_id(), stIvtIostorinvYl.getIo_type());
} }
@Override @Override
@@ -109,7 +110,7 @@ public class StIvtIostorinvOutYlServiceImpl extends ServiceImpl<StIvtIostorinvYl
JSONArray rows = form.getJSONArray("tableData"); JSONArray rows = form.getJSONArray("tableData");
if (ObjectUtil.isEmpty(rows)) throw new BadRequestException("请求参数不能为空"); if (ObjectUtil.isEmpty(rows)) throw new BadRequestException("请求参数不能为空");
// 调用明细表 插入/更新方法 // 调用明细表 插入/更新方法
iostorinvdtlYlService.create(rows, form.getString("iostorinv_id")); iostorinvdtlYlService.create(rows, form.getString("iostorinv_id"), mst.getIo_type());
return mst.getIostorinv_id(); return mst.getIostorinv_id();
} }
@@ -138,56 +139,17 @@ public class StIvtIostorinvOutYlServiceImpl extends ServiceImpl<StIvtIostorinvYl
StIvtIostorinvYl mst = this.getById(iostorinv_id); StIvtIostorinvYl mst = this.getById(iostorinv_id);
List<StIvtIostorinvdisYl> dis_list = iostorinvdisYlService.list(new QueryWrapper<StIvtIostorinvdisYl>().eq("iostorinv_id", iostorinv_id));
List<StIvtIostorinvdtlYl> dtl_list = iostorinvdtlYlService.list(new QueryWrapper<StIvtIostorinvdtlYl>().eq("iostorinv_id", iostorinv_id)); List<StIvtIostorinvdtlYl> dtl_list = iostorinvdtlYlService.list(new QueryWrapper<StIvtIostorinvdtlYl>().eq("iostorinv_id", iostorinv_id));
if (ObjectUtil.isEmpty(dis_list)) { if (ObjectUtil.isEmpty(dtl_list)) {
throw new BadRequestException("该入库单不存在分配明细!"); throw new BadRequestException("该入库单不存在明细!");
} }
if (mst == null || mst.getIs_delete() == true) { if (mst == null || mst.getIs_delete() == true) {
throw new BadRequestException("单据不存在"); throw new BadRequestException("单据不存在");
} }
//修改分配状态
dis_list.forEach(dis -> {
dis.setReal_qty(dis.getPlan_qty());
dis.setWork_status(IOSEnum.WORK_STATUS.code("完成"));
iostorinvdisYlService.updateById(dis);
//修改库存和插入库存变动记录表
structivtflowService.recordStructivtFlow(
StIvtStructivtflowDto.builder()
.bill_code(mst.getBill_code()).change_type_scode(CHANGE_BILL_TYPE_ENUM.IOSTORINV_IN_CONFIRM).bill_table("st_ivt_iostorinv_bcp")
.material_id(dis.getMaterial_id()).pcsn(dis.getPcsn())
.struct_code(dis.getStruct_code()).result_qty(structivtYlService.getOne(new QueryWrapper<StIvtStructivtYl>().eq("struct_code", dis.getStruct_code())).getCanuse_qty()).change_qty(dis.getReal_qty())
.task_id(dis.getTask_id())
.storagevehicle_code(dis.getStoragevehicle_code())
.build()
);
});
//修改明细状态
dtl_list.forEach(dtl -> {
dtl.setReal_qty(dtl.getPlan_qty());
dtl.setBill_status(IOSEnum.BILL_STATUS.code("完成"));
iostorinvdtlYlService.updateById(dtl);
//如果单据类型为原料入库
if (mst.getBill_type().equals(IOSEnum.BILL_TYPE.code("原料入库"))) {
JSONObject pur_jo = new JSONObject();
pur_jo.put("po_code", dtl.getSource_bill_code());
pur_jo.put("instor_qty", dtl.getReal_qty());
purchaseorderService.updatePurchaseNum(pur_jo);
}
});
//修改主表
mst.setConfirm_id(SecurityUtils.getCurrentUserId());
mst.setConfirm_name(SecurityUtils.getCurrentNickName());
mst.setConfirm_time(DateUtil.now());
mst.setBill_status(IOSEnum.BILL_STATUS.code("完成"));
this.updateById(mst);
} }
@@ -198,7 +160,7 @@ public class StIvtIostorinvOutYlServiceImpl extends ServiceImpl<StIvtIostorinvYl
// 新增 // 新增
stIvtIostorinvYl.setIostorinv_id(IdUtil.getStringId()); stIvtIostorinvYl.setIostorinv_id(IdUtil.getStringId());
stIvtIostorinvYl.setBill_code(CodeUtil.getNewCode("IO_CODE")); stIvtIostorinvYl.setBill_code(CodeUtil.getNewCode("IO_CODE"));
stIvtIostorinvYl.setIo_type(IOSEnum.IO_TYPE.code("")); stIvtIostorinvYl.setIo_type(IOSEnum.IO_TYPE.code(""));
stIvtIostorinvYl.setBuss_type(whereJson.getString("bill_type")); stIvtIostorinvYl.setBuss_type(whereJson.getString("bill_type"));
stIvtIostorinvYl.setBill_type(stIvtIostorinvYl.getBuss_type()); stIvtIostorinvYl.setBill_type(stIvtIostorinvYl.getBuss_type());
stIvtIostorinvYl.setBill_status(IOSEnum.BILL_STATUS.code("生成")); stIvtIostorinvYl.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
@@ -234,6 +196,7 @@ public class StIvtIostorinvOutYlServiceImpl extends ServiceImpl<StIvtIostorinvYl
stIvtIostorinvYl.setTotal_qty(whereJson.getBigDecimal("total_qty")); stIvtIostorinvYl.setTotal_qty(whereJson.getBigDecimal("total_qty"));
stIvtIostorinvYl.setDetail_count(rows.size()); stIvtIostorinvYl.setDetail_count(rows.size());
stIvtIostorinvYl.setRemark(whereJson.getString("remark")); stIvtIostorinvYl.setRemark(whereJson.getString("remark"));
stIvtIostorinvYl.setWorkshop_id(whereJson.getString("workshop_id"));
return stIvtIostorinvYl; return stIvtIostorinvYl;
} }

View File

@@ -95,7 +95,7 @@ public class StIvtIostorinvYlServiceImpl extends ServiceImpl<StIvtIostorinvYlMap
this.save(stIvtIostorinvYl); this.save(stIvtIostorinvYl);
// 调用明细表 插入/更新方法 // 调用明细表 插入/更新方法
iostorinvdtlYlService.create(rows, stIvtIostorinvYl.getIostorinv_id()); iostorinvdtlYlService.create(rows, stIvtIostorinvYl.getIostorinv_id(), stIvtIostorinvYl.getIo_type());
} }
@Override @Override
@@ -110,7 +110,7 @@ public class StIvtIostorinvYlServiceImpl extends ServiceImpl<StIvtIostorinvYlMap
JSONArray rows = form.getJSONArray("tableData"); JSONArray rows = form.getJSONArray("tableData");
if (ObjectUtil.isEmpty(rows)) throw new BadRequestException("请求参数不能为空"); if (ObjectUtil.isEmpty(rows)) throw new BadRequestException("请求参数不能为空");
// 调用明细表 插入/更新方法 // 调用明细表 插入/更新方法
iostorinvdtlYlService.create(rows, form.getString("iostorinv_id")); iostorinvdtlYlService.create(rows, form.getString("iostorinv_id"), mst.getIo_type());
return mst.getIostorinv_id(); return mst.getIostorinv_id();
} }
@@ -235,6 +235,7 @@ public class StIvtIostorinvYlServiceImpl extends ServiceImpl<StIvtIostorinvYlMap
stIvtIostorinvYl.setTotal_qty(whereJson.getBigDecimal("total_qty")); stIvtIostorinvYl.setTotal_qty(whereJson.getBigDecimal("total_qty"));
stIvtIostorinvYl.setDetail_count(rows.size()); stIvtIostorinvYl.setDetail_count(rows.size());
stIvtIostorinvYl.setRemark(whereJson.getString("remark")); stIvtIostorinvYl.setRemark(whereJson.getString("remark"));
stIvtIostorinvYl.setWorkshop_id(whereJson.getString("workshop_id"));
return stIvtIostorinvYl; return stIvtIostorinvYl;
} }

View File

@@ -36,14 +36,16 @@ public class StIvtIostorinvdtlYlServiceImpl extends ServiceImpl<StIvtIostorinvdt
private IStIvtIostorinvdisYlService iostorinvdisYlService; private IStIvtIostorinvdisYlService iostorinvdisYlService;
@Override @Override
public double create(JSONArray rows, String iostorinvYl_id) { public double create(JSONArray rows, String iostorinvYl_id, String io_type) {
double total_qty = 0; double total_qty = 0;
if (rows.size() > 0 && StringUtils.isNotEmpty(iostorinvYl_id)) { if (rows.size() > 0 && StringUtils.isNotEmpty(iostorinvYl_id)) {
// 先删除在插入 // 先删除在插入
this.remove(new QueryWrapper<StIvtIostorinvdtlYl>().eq("iostorinv_id", iostorinvYl_id)); this.remove(new QueryWrapper<StIvtIostorinvdtlYl>().eq("iostorinv_id", iostorinvYl_id));
//删除分配记录 if (io_type.equals(IOSEnum.IO_TYPE.code("入库"))) {
iostorinvdisYlService.deleteById(iostorinvYl_id); //删除分配记录
iostorinvdisYlService.deleteById(iostorinvYl_id);
}
for (int i = 0; i < rows.size(); i++) { for (int i = 0; i < rows.size(); i++) {
String iostorinvdtlYl_id = IdUtil.getStringId(); String iostorinvdtlYl_id = IdUtil.getStringId();
@@ -60,7 +62,9 @@ public class StIvtIostorinvdtlYlServiceImpl extends ServiceImpl<StIvtIostorinvdt
JSONObject mst_jo = new JSONObject(); JSONObject mst_jo = new JSONObject();
mst_jo.put("mst_id", iostorinvYl_id); mst_jo.put("mst_id", iostorinvYl_id);
mst_jo.put("dtl_id", iostorinvdtlYl_id); mst_jo.put("dtl_id", iostorinvdtlYl_id);
iostorinvdisYlService.create(rows.getJSONObject(i), mst_jo); if (io_type.equals(IOSEnum.IO_TYPE.code("入库"))) {
iostorinvdisYlService.create(rows.getJSONObject(i), mst_jo);
}
} }
} }
return total_qty; return total_qty;

View File

@@ -248,6 +248,7 @@ const defaultForm = {
struct_id: '', struct_id: '',
bill_type: '', bill_type: '',
remark: '', remark: '',
workshop_id: '',
biz_date: new Date(), biz_date: new Date(),
create_mode: '', create_mode: '',
tableData: [] tableData: []
@@ -419,7 +420,6 @@ export default {
tableChanged(rows) { tableChanged(rows) {
// 对新增的行进行校验不能存在相同物料批次 // 对新增的行进行校验不能存在相同物料批次
rows.forEach((item) => { rows.forEach((item) => {
debugger
let same_mater = true let same_mater = true
this.form.tableData.forEach((row) => { this.form.tableData.forEach((row) => {
if (row.material_code === item.material_code) { if (row.material_code === item.material_code) {

View File

@@ -203,7 +203,7 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<StructIvt <MaterDtl
:dialog-show.sync="materShow" :dialog-show.sync="materShow"
:is-single="false" :is-single="false"
@setMaterValue="tableChanged" @setMaterValue="tableChanged"
@@ -237,6 +237,7 @@ const defaultForm = {
stor_id: '', stor_id: '',
struct_id: '', struct_id: '',
bill_type: '', bill_type: '',
workshop_id: '',
remark: '', remark: '',
biz_date: new Date(), biz_date: new Date(),
create_mode: '', create_mode: '',
@@ -301,7 +302,7 @@ export default {
}, },
[CRUD.HOOK.afterToEdit]() { [CRUD.HOOK.afterToEdit]() {
// 获取入库单明细 // 获取入库单明细
crudProductIn.getIODtl({'iostorinv_id': this.form.iostorinv_id}).then(res => { crudProductOut.getIODtl({'iostorinv_id': this.form.iostorinv_id}).then(res => {
this.form.tableData = res this.form.tableData = res
// 将明细变成不可编辑 // 将明细变成不可编辑
for (let i = 0; i < this.form.tableData.length; i++) { for (let i = 0; i < this.form.tableData.length; i++) {
@@ -310,25 +311,6 @@ export default {
} }
}) })
}, },
[CRUD.HOOK.beforeToEdit]() {
this.struct_id = this.crud.form.struct_id
this.sect_id = this.crud.form.sect_id
crudStructattr.getSectCascader({'stor_id': this.crud.form.stor_id}).then(res => {
this.sects = res.content
this.form.struct_id = this.search(this.sects, this.struct_id)
})
},
[CRUD.HOOK.afterToView]() {
crudProductIn.getIODtl({'bill_code': this.form.bill_code}).then(res => {
this.form.tableData = res
// 将明细变成不可编辑
for (let i = 0; i < this.form.tableData.length; i++) {
const row = this.form.tableData[i]
this.form.tableData.splice(i, 1, row)
}
})
},
[CRUD.HOOK.beforeSubmit]() { [CRUD.HOOK.beforeSubmit]() {
// 提交前校验 // 提交前校验
if (this.form.tableData.length === 0) { if (this.form.tableData.length === 0) {
@@ -360,16 +342,6 @@ export default {
this.sects = res.content this.sects = res.content
}) })
}, },
search(object, value) {
debugger
for (var key in object) {
if (object[key].value == value) return [object[key].value];
if (object[key].children && Object.keys(object[key].children).length > 0) {
var temp = search(object[key].children, value);
if (temp) return [object[key].value, temp].flat();
}
}
},
sectQueryChange(val) { sectQueryChange(val) {
debugger debugger
this.sectProp = val this.sectProp = val
@@ -404,10 +376,9 @@ export default {
tableChanged(rows) { tableChanged(rows) {
// 对新增的行进行校验不能存在相同物料批次 // 对新增的行进行校验不能存在相同物料批次
rows.forEach((item) => { rows.forEach((item) => {
debugger
let same_mater = true let same_mater = true
this.form.tableData.forEach((row) => { this.form.tableData.forEach((row) => {
if (row.material_code === item.material_code && row.struct_id === item.struct_id) { if (row.material_code === item.material_code) {
same_mater = false same_mater = false
} }
}) })
@@ -415,7 +386,9 @@ export default {
item.quality_scode = '01' item.quality_scode = '01'
item.ivt_level = '01' item.ivt_level = '01'
item.is_active = '1' item.is_active = '1'
item.plan_qty = item.canuse_qty item.plan_qty = '1'
item.qty_unit_id = item.base_unit_id
item.qty_unit_name = item.base_unit_name
this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(item.plan_qty) this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(item.plan_qty)
this.form.tableData.splice(-1, 0, item) this.form.tableData.splice(-1, 0, item)
} }

View File

@@ -45,7 +45,7 @@
@change="crud.toQuery" @change="crud.toQuery"
> >
<el-option <el-option
v-for="item in dict.ST_INV_IN_TYPE" v-for="item in dict.ST_INV_OUT_TYPE"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
@@ -130,7 +130,7 @@ export default {
name: 'ViewDialog', name: 'ViewDialog',
components: {}, components: {},
mixins: [crud()], mixins: [crud()],
dicts: ['ST_INV_IN_TYPE', 'product_area', 'IO_BILL_STATUS'], dicts: ['ST_INV_OUT_TYPE', 'product_area', 'IO_BILL_STATUS'],
props: { props: {
dialogShow: { dialogShow: {
type: Boolean, type: Boolean,

View File

@@ -42,7 +42,7 @@
@change="crud.toQuery" @change="crud.toQuery"
> >
<el-option <el-option
v-for="item in dict.ST_INV_IN_TYPE" v-for="item in dict.ST_INV_OUT_TYPE"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
@@ -233,7 +233,7 @@ export default {
}, },
mixins: [presenter(), header(), crud()], mixins: [presenter(), header(), crud()],
// 数据字典 // 数据字典
dicts: ['IO_BILL_STATUS', 'ST_INV_IN_TYPE', 'product_area', 'ST_INV_CREATE'], dicts: ['IO_BILL_STATUS', 'ST_INV_OUT_TYPE', 'product_area', 'ST_INV_CREATE'],
data() { data() {
return { return {
height: document.documentElement.clientHeight - 180 + 'px;', height: document.documentElement.clientHeight - 180 + 'px;',
@@ -306,7 +306,7 @@ export default {
} }
}, },
bill_typeFormat(row, column) { bill_typeFormat(row, column) {
return this.dict.label.ST_INV_IN_TYPE[row.bill_type] return this.dict.label.ST_INV_OUT_TYPE[row.bill_type]
}, },
toView(row) { toView(row) {
this.mstrow = row this.mstrow = row

View File

@@ -2,7 +2,7 @@ import request from '@/utils/request'
export function add(data) { export function add(data) {
return request({ return request({
url: 'api/productOut', url: '/api/out/stIvtIostorinvYl',
method: 'post', method: 'post',
data data
}) })
@@ -10,7 +10,7 @@ export function add(data) {
export function del(ids) { export function del(ids) {
return request({ return request({
url: 'api/productOut/', url: '/api/out/stIvtIostorinvYl/',
method: 'delete', method: 'delete',
data: ids data: ids
}) })
@@ -18,211 +18,211 @@ export function del(ids) {
export function edit(data) { export function edit(data) {
return request({ return request({
url: 'api/productOut', url: '/api/out/stIvtIostorinvYl/update',
method: 'put',
data
})
}
export function getOutBillDtl(data) {
return request({
url: '/api/productOut/getOutBillDtl',
method: 'post', method: 'post',
data data
}) })
} }
export function getOutBillDis(data) {
export function getIODtl(data) {
return request({ return request({
url: '/api/productOut/getOutBillDis', url: '/api/out/stIvtIostorinvYl/getIODtl',
method: 'post',
data
})
}
export function getIODis(data) {
return request({
url: '/api/out/stIvtIostorinvYl/getIODis',
method: 'post', method: 'post',
data data
}) })
} }
export function getOutBillDisDtl(params) { export function getOutBillDisDtl(params) {
return request({ return request({
url: '/api/productOut/getOutBillDisDtl', url: '//api/out/stIvtIostorinvYl/getOutBillDisDtl',
method: 'get', method: 'get',
params params
}) })
} }
export function getOutBillTask(params) { export function getOutBillTask(params) {
return request({ return request({
url: '/api/productOut/getOutBillTask', url: '//api/out/stIvtIostorinvYl/getOutBillTask',
method: 'get', method: 'get',
params params
}) })
} }
export function getInvTypes() { export function getInvTypes() {
return request({ return request({
url: '/api/productOut/getInvTypes', url: '//api/out/stIvtIostorinvYl/getInvTypes',
method: 'get' method: 'get'
}) })
} }
export function insertDtl(data) { export function insertDtl(data) {
return request({ return request({
url: '/api/productOut/insertDtl', url: '//api/out/stIvtIostorinvYl/insertDtl',
method: 'post', method: 'post',
data data
}) })
} }
export function allDiv(data) { export function allDiv(data) {
return request({ return request({
url: '/api/productOut/allDiv', url: '//api/out/stIvtIostorinvYl/allDiv',
method: 'post', method: 'post',
data data
}) })
} }
export function allDivOne(data) { export function allDivOne(data) {
return request({ return request({
url: '/api/productOut/allDivOne', url: '//api/out/stIvtIostorinvYl/allDivOne',
method: 'post', method: 'post',
data data
}) })
} }
export function allCancel(data) { export function allCancel(data) {
return request({ return request({
url: '/api/productOut/allCancel', url: '//api/out/stIvtIostorinvYl/allCancel',
method: 'post', method: 'post',
data data
}) })
} }
export function oneCancel(data) { export function oneCancel(data) {
return request({ return request({
url: '/api/productOut/oneCancel', url: '//api/out/stIvtIostorinvYl/oneCancel',
method: 'post', method: 'post',
data data
}) })
} }
export function setPoint(data) { export function setPoint(data) {
return request({ return request({
url: '/api/productOut/setPoint', url: '//api/out/stIvtIostorinvYl/setPoint',
method: 'post', method: 'post',
data data
}) })
} }
export function oneSetPoint(data) { export function oneSetPoint(data) {
return request({ return request({
url: '/api/productOut/oneSetPoint', url: '//api/out/stIvtIostorinvYl/oneSetPoint',
method: 'post', method: 'post',
data data
}) })
} }
export function getStructIvt(params) { export function getStructIvt(params) {
return request({ return request({
url: '/api/productOut/getStructIvt', url: '//api/out/stIvtIostorinvYl/getStructIvt',
method: 'get', method: 'get',
params params
}) })
} }
export function manualDiv(data) { export function manualDiv(data) {
return request({ return request({
url: '/api/productOut/manualDiv', url: '//api/out/stIvtIostorinvYl/manualDiv',
method: 'post', method: 'post',
data data
}) })
} }
export function confirm(data) { export function confirm(data) {
return request({ return request({
url: '/api/productOut/confirm', url: '//api/out/stIvtIostorinvYl/confirm',
method: 'post', method: 'post',
data data
}) })
} }
export function issueTask(data) { export function issueTask(data) {
return request({ return request({
url: '/api/productOut/issueTask', url: '//api/out/stIvtIostorinvYl/issueTask',
method: 'post', method: 'post',
data data
}) })
} }
export function finishTask(data) { export function finishTask(data) {
return request({ return request({
url: '/api/productOut/finishTask', url: '//api/out/stIvtIostorinvYl/finishTask',
method: 'post', method: 'post',
data data
}) })
} }
export function cancleTaskfinish(data) { export function cancleTaskfinish(data) {
return request({ return request({
url: '/api/productOut/cancleTaskfinish', url: '//api/out/stIvtIostorinvYl/cancleTaskfinish',
method: 'post', method: 'post',
data data
}) })
} }
export function paramByCodeType(data) { export function paramByCodeType(data) {
return request({ return request({
url: '/api/productOut/paramByCodeType', url: '//api/out/stIvtIostorinvYl/paramByCodeType',
method: 'post', method: 'post',
data data
}) })
} }
export function schAreaType(data) { export function schAreaType(data) {
return request({ return request({
url: '/api/productOut/schAreaType', url: '//api/out/stIvtIostorinvYl/schAreaType',
method: 'post', method: 'post',
data data
}) })
} }
export function backConfirm(data) { export function backConfirm(data) {
return request({ return request({
url: '/api/productOut/backConfirm', url: '//api/out/stIvtIostorinvYl/backConfirm',
method: 'post', method: 'post',
data data
}) })
} }
export function getType() { export function getType() {
return request({ return request({
url: '/api/productOut/getType', url: '//api/out/stIvtIostorinvYl/getType',
method: 'get' method: 'get'
}) })
} }
export function moneySubmit(data) { export function moneySubmit(data) {
return request({ return request({
url: '/api/productOut/moneySubmit', url: '//api/out/stIvtIostorinvYl/moneySubmit',
method: 'post', method: 'post',
data data
}) })
} }
export function getDisNum(data) { export function getDisNum(data) {
return request({ return request({
url: '/api/productOut/getDisNum', url: '//api/out/stIvtIostorinvYl/getDisNum',
method: 'post', method: 'post',
data data
}) })
} }
export function queryBox(data) { export function queryBox(data) {
return request({ return request({
url: '/api/productOut/queryBox', url: '//api/out/stIvtIostorinvYl/queryBox',
method: 'post', method: 'post',
data data
}) })
} }
export function getOutBillTask2(data) { export function getOutBillTask2(data) {
return request({ return request({
url: '/api/productOut/getOutBillTask2', url: '//api/out/stIvtIostorinvYl/getOutBillTask2',
method: 'post', method: 'post',
data data
}) })
} }
export function cancelTask(data) { export function cancelTask(data) {
return request({ return request({
url: '/api/productOut/cancelTask', url: '//api/out/stIvtIostorinvYl/cancelTask',
method: 'post', method: 'post',
data data
}) })
} }
export function allSetPoint(data) { export function allSetPoint(data) {
return request({ return request({
url: '/api/productOut/allSetPoint', url: '//api/out/stIvtIostorinvYl/allSetPoint',
method: 'post', method: 'post',
data data
}) })
} }
export function oneSetPoint2(data) { export function oneSetPoint2(data) {
return request({ return request({
url: '/api/productOut/oneSetPoint2', url: '//api/out/stIvtIostorinvYl/oneSetPoint2',
method: 'post', method: 'post',
data data
}) })
} }
export default { add, edit, del, allDiv, allCancel, getOutBillDtl, getOutBillDis, setPoint, oneSetPoint, getOutBillTask, getStructIvt, manualDiv, confirm, issueTask, finishTask, cancleTaskfinish, getInvTypes, paramByCodeType, schAreaType, backConfirm, getOutBillDisDtl, getType, allDivOne, moneySubmit, getDisNum, queryBox, getOutBillTask2, oneCancel, cancelTask, allSetPoint, oneSetPoint2 } export default { add, edit, del, allDiv, allCancel, getIODtl, getIODis, setPoint, oneSetPoint, getOutBillTask, getStructIvt, manualDiv, confirm, issueTask, finishTask, cancleTaskfinish, getInvTypes, paramByCodeType, schAreaType, backConfirm, getOutBillDisDtl, getType, allDivOne, moneySubmit, getDisNum, queryBox, getOutBillTask2, oneCancel, cancelTask, allSetPoint, oneSetPoint2 }