This commit is contained in:
zhouz
2023-06-15 15:12:24 +08:00
13 changed files with 268 additions and 121 deletions

View File

@@ -2,20 +2,27 @@
package org.nl.wms.masterdata_manage.master.controller.measureunit;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.nl.common.anno.Log;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.wms.masterdata_manage.备份master.service.UnitService;
import org.nl.wms.masterdata_manage.备份master.service.dto.UnitDto;
import org.springframework.data.domain.Pageable;
import org.nl.common.anno.Log;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.masterdata_manage.service.master.IMdPbMeasureunitService;
import org.nl.wms.masterdata_manage.service.master.dao.MdPbMeasureunit;
import org.nl.wms.masterdata_manage.service.master.dto.UnitQuery;
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
import org.nl.wms.storage_manage.semimanage.service.check.dao.StIvtCheckdtlBcp;
import org.nl.wms.storage_manage.semimanage.service.check.dao.StIvtCheckmstBcp;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
import java.util.List;
/**
* @author loujf
@@ -27,48 +34,40 @@ import java.util.Map;
@RequestMapping("/api/mdPbMeasureunit")
@Slf4j
public class MdPbMeasureunitController {
private final UnitService unitService;
@Autowired
private IMdPbMeasureunitService measureunitService;
@GetMapping
@Log("查询计量单位")
@Log("查询单位")
@ApiOperation("查询计量单位")
//@PreAuthorize("@el.check('Unit:list')")
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page){
return new ResponseEntity<>(unitService.queryAll(whereJson,page),HttpStatus.OK);
public ResponseEntity<Object> query(UnitQuery query, PageQuery page) {
return new ResponseEntity<>(measureunitService.pageQuery(query, page), HttpStatus.OK);
}
@PostMapping
@PostMapping("/add")
@Log("新增计量单位")
@ApiOperation("新增计量单位")
//@PreAuthorize("@el.check('Unit:add')")
public ResponseEntity<Object> create(@Validated @RequestBody UnitDto dto){
unitService.create(dto);
return new ResponseEntity<>(HttpStatus.CREATED);
}
@PutMapping
@Log("修改计量单位")
@ApiOperation("修改计量单位")
//@PreAuthorize("@el.check('Unit:edit')")
public ResponseEntity<Object> update(@Validated @RequestBody UnitDto dto){
unitService.update(dto);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@Log("删除计量单位")
@ApiOperation("删除计量单位")
//@PreAuthorize("@el.check('Unit:del')")
@DeleteMapping
public ResponseEntity<Object> delete(@RequestBody String[] ids) {
unitService.deleteAll(ids);
public ResponseEntity<Object> create(@RequestBody JSONObject whereJson) {
measureunitService.create(whereJson);
return new ResponseEntity<>(HttpStatus.OK);
}
@GetMapping("/getUnit")
@Log("查询单位下拉框")
@ApiOperation("查询仓库下拉框")
//@PreAuthorize("@el.check('materialtype:list')")
public ResponseEntity<Object> queryUnit(@RequestParam Map whereJson) {
return new ResponseEntity<>(unitService.getUnit(whereJson), HttpStatus.OK);
@PostMapping("/update")
@Log("修改计量单位")
@ApiOperation("修改计量单位")
public ResponseEntity<Object> update(@RequestBody JSONObject whereJson) {
measureunitService.update(whereJson);
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("/delete")
@Log("删除计量单位")
@ApiOperation("删除计量单位")
public ResponseEntity<Object> delete(@RequestBody Long[] ids){
for (Long id : ids) {
measureunitService.removeById(id);
}
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -1,7 +1,10 @@
package org.nl.wms.masterdata_manage.service.master;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.masterdata_manage.service.master.dao.MdPbMeasureunit;
import org.nl.wms.masterdata_manage.service.master.dto.UnitQuery;
/**
* <p>
@@ -13,4 +16,16 @@ import org.nl.wms.masterdata_manage.service.master.dao.MdPbMeasureunit;
*/
public interface IMdPbMeasureunitService extends IService<MdPbMeasureunit> {
/**
* 分页查询
* @param query,page /
* @return JSONObject
*/
Object pageQuery(UnitQuery query, PageQuery page);
void create(JSONObject jo);
void update(JSONObject jo);
}

View File

@@ -7,8 +7,6 @@ import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
/**
* <p>
@@ -64,7 +62,7 @@ public class MdPbMeasureunit implements Serializable {
/**
* 创建时间
*/
private Date create_time;
private String create_time;
/**
* 修改人
@@ -79,7 +77,7 @@ public class MdPbMeasureunit implements Serializable {
/**
* 修改时间
*/
private Date update_time;
private String update_time;
/**
* 外部标识

View File

@@ -0,0 +1,24 @@
package org.nl.wms.masterdata_manage.service.master.dto;
import lombok.Data;
import org.nl.common.domain.query.BaseQuery;
import org.nl.common.domain.query.QParam;
import org.nl.common.enums.QueryTEnum;
import org.nl.wms.masterdata_manage.service.master.dao.MdPbMeasureunit;
import org.nl.wms.storage_manage.rawmanage.service.check.dao.StIvtCheckmstYl;
/*
* @author ZZQ
* @Date 2023/5/4 19:49
*/
@Data
public class UnitQuery extends BaseQuery<MdPbMeasureunit> {
private String search;
@Override
public void paramMapping() {
super.doP.put("search", QParam.builder().k(new String[]{"unit_name"}).type(QueryTEnum.LK).build());
}
}

View File

@@ -1,11 +1,25 @@
package org.nl.wms.masterdata_manage.service.master.impl;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import io.jsonwebtoken.lang.Assert;
import org.apache.catalina.security.SecurityUtil;
import org.nl.common.TableDataInfo;
import org.nl.common.domain.query.BaseQuery;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.wms.masterdata_manage.service.master.IMdPbMeasureunitService;
import org.nl.wms.masterdata_manage.service.master.dao.MdPbMeasureunit;
import org.nl.wms.masterdata_manage.service.master.dao.mapper.MdPbMeasureunitMapper;
import org.nl.wms.masterdata_manage.service.master.dto.UnitQuery;
import org.nl.wms.storage_manage.semimanage.service.check.dao.StIvtCheckmstBcp;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
/**
* <p>
* 计量单位表 服务实现类
@@ -17,4 +31,39 @@ import org.springframework.stereotype.Service;
@Service
public class MdPbMeasureunitServiceImpl extends ServiceImpl<MdPbMeasureunitMapper, MdPbMeasureunit> implements IMdPbMeasureunitService {
@Override
public Object pageQuery(UnitQuery query, PageQuery page) {
Page<MdPbMeasureunit> pageQuery = this.page(page.build(), query.build());
return TableDataInfo.build(pageQuery);
}
@Override
public void create(JSONObject jo) {
String unit_code = jo.getString("unit_code");
String unit_name = jo.getString("unit_name");
String ext_id = jo.getString("ext_id");
BigDecimal qty_precision = jo.getBigDecimal("qty_precision");
boolean is_used = jo.getBoolean("is_used");
MdPbMeasureunit unit = new MdPbMeasureunit();
unit.setMeasure_unit_id(IdUtil.getStringId());
unit.setUnit_code(unit_code);
unit.setUnit_name(unit_name);
unit.setQty_precision(qty_precision);
unit.setExt_id(ext_id);
unit.setIs_used(is_used);
unit.setCreate_id(SecurityUtils.getCurrentUserId());
unit.setCreate_name(SecurityUtils.getCurrentNickName());
unit.setCreate_time(DateUtil.now());
this.save(unit);
}
@Override
public void update(JSONObject jo) {
Assert.notNull(new Object[]{jo, jo.get("measure_unit_id")}, "请求参数不能为空");
MdPbMeasureunit mst = jo.toJavaObject(MdPbMeasureunit.class);
mst.setUpdate_id(SecurityUtils.getCurrentUserId());
mst.setUpdate_name(SecurityUtils.getCurrentNickName());
mst.setUpdate_time(DateUtil.now());
this.updateById(mst);
}
}

View File

@@ -30,6 +30,8 @@ public interface SchBasePointMapper extends BaseMapper<SchBasePoint> {
*/
List<Map> selectPoint(Map<String,Object> map);
List<Map> canUsePoint(Map<String,Object> map);
Map getDeviceWorkprodure(String pointCode);
Map getWorkprodure(@Param("workprodureId") String workprodureId, @Param("workprodureCode") String workprodureCode);

View File

@@ -89,6 +89,33 @@
AND ruledis.load_series >= #{loadSeries}
</if>
</select>
<select id="canUsePoint" resultType="java.util.Map">
SELECT
point.point_code,
point.point_type
FROM
sch_base_point point
WHERE
(point.vehicle_code = '' OR point.vehicle_code IS NULL)
AND not exists(
SELECT
*
FROM
sch_base_task
WHERE
( point_code1 = point.point_code OR point_code2 = point.point_code )
AND '07' > task_status
AND is_delete = '0'
)
<if test="region_code != null and region_code != ''">
AND point.region_code = #{region_code}
</if>
<if test="search != null and search != ''">
AND (point.point_code like '%${search}%' or point.point_name like '%${search}%')
</if>
</select>
<select id="getDeviceWorkprodure" resultType="java.util.Map">
select
r.workprocedure_code,r.workprocedure_id,dev.device_code,dev.spec from pdm_bi_device dev

View File

@@ -26,30 +26,27 @@ import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattr
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr;
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint;
import org.nl.wms.scheduler_manage.service.point.dao.mapper.SchBasePointMapper;
import org.nl.wms.storage_manage.CHECKEnum;
import org.nl.wms.storage_manage.rawmanage.service.check.dao.StIvtCheckdtlYl;
import org.nl.wms.storage_manage.rawmanage.service.check.dao.StIvtCheckmstYl;
import org.nl.wms.storage_manage.semimanage.service.check.dao.StIvtCheckdtlBcp;
import org.nl.wms.storage_manage.semimanage.service.check.dao.mapper.StIvtCheckdtlBcpMapper;
import org.nl.wms.storage_manage.semimanage.service.check.dto.CheckQuery;
import org.nl.wms.storage_manage.semimanage.MLEnum;
import org.nl.wms.storage_manage.semimanage.service.check.IStIvtCheckdtlBcpService;
import org.nl.wms.storage_manage.semimanage.service.check.IStIvtCheckmstBcpService;
import org.nl.wms.storage_manage.semimanage.service.check.dao.StIvtCheckdtlBcp;
import org.nl.wms.storage_manage.semimanage.service.check.dao.StIvtCheckmstBcp;
import org.nl.wms.storage_manage.semimanage.service.check.dao.mapper.StIvtCheckdtlBcpMapper;
import org.nl.wms.storage_manage.semimanage.service.check.dao.mapper.StIvtCheckmstBcpMapper;
import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.StIvtIostorinvBcp;
import org.nl.wms.storage_manage.semimanage.service.check.dto.CheckQuery;
import org.nl.wms.storage_manage.semimanage.service.moveOrLess.IStIvtMoreorlessmstBcpService;
import org.nl.wms.storage_manage.semimanage.service.shutFrame.dao.StIvtShutframedtlBcp;
import org.nl.wms.storage_manage.semimanage.service.shutFrame.dao.StIvtShutframeinvBcp;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
/**
* <p>
@@ -74,6 +71,10 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl<StIvtCheckmstBcpMap
private IStIvtMoreorlessmstBcpService moreorlessmstBcpService;
@Autowired
private StIvtCheckdtlBcpMapper checkdtlBcpMapper;
@Autowired
private SchBasePointMapper pointMapper;
@Autowired
private ISchBasePointService pointService;
@Override
public Object pageQuery(CheckQuery query, PageQuery page) {
@@ -278,8 +279,9 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl<StIvtCheckmstBcpMap
throw new BadRequestException("当前仓位的盘点移出任务已经下发!");
}
//查询可用的半成品移出点位
String point_code = "PD01";
Map map = new HashMap<>();
map.put("region_code", "A1_BCP_PD");
List<Map> maps = pointMapper.canUsePoint(map);
StIvtCheckmstBcp mst = this.getById(dtl.getCheck_id());
@@ -288,7 +290,7 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl<StIvtCheckmstBcpMap
PointEvent event = PointEvent.builder()
.type(AcsTaskEnum.TASK_STRUCT_SHUT.getCode())
.point_code1(struct.getStruct_code())
.point_code2(point_code)
.point_code2((String) maps.get(0).get("point_code"))
.vehicle_code(dtl.getStoragevehicle_code())
.product_area(mst.getWorkshop_id())
.build();
@@ -297,7 +299,7 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl<StIvtCheckmstBcpMap
checkdtlBcpService.update(new UpdateWrapper<StIvtCheckdtlBcp>()
.set("is_down", "1")
.set("checkpoint_id", point_code)
.set("checkpoint_id", (String) maps.get(0).get("point_code"))
.set("status", CHECKEnum.DTL_STATUS.code("盘点中"))
.eq("struct_id", dtl.getStruct_id())
.eq("check_id", dtl.getCheck_id()));
@@ -312,28 +314,39 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl<StIvtCheckmstBcpMap
String status = form.getString("status");
List<StIvtCheckdtlBcp> dtl_list = checkdtlBcpMapper.queryCheckDtlByTask(MapOf.of("task_id", task_id));
StIvtCheckdtlBcp dtl = dtl_list.get(0);
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode()) && dtl.getIs_down().equals("2")) {
checkdtlBcpService.update(new UpdateWrapper<StIvtCheckdtlBcp>()
.set("status", CHECKEnum.DTL_STATUS.code("完成"))
.eq("struct_id", dtl.getStruct_id())
.eq("check_id", dtl.getCheck_id()));
//判断是否存在未完成的明细
List<StIvtCheckdtlBcp> list = checkdtlBcpService.list(new QueryWrapper<StIvtCheckdtlBcp>().eq("check_id", dtl.getCheck_id())
.ne("status", CHECKEnum.DTL_STATUS.code("完成")));
if (list.size() == 0) {
StIvtCheckmstBcp jo_mst = this.getOne(new QueryWrapper<StIvtCheckmstBcp>().eq("check_id", dtl.getCheck_id()));
jo_mst.setStatus(CHECKEnum.BILL_STATUS.code("完成"));
jo_mst.setConfirm_optid(SecurityUtils.getCurrentUserId());
jo_mst.setConfirm_optname(SecurityUtils.getCurrentNickName());
jo_mst.setConfirm_time(DateUtil.now());
//解锁起点点位、仓位
List<StIvtCheckdtlBcp> finish_list = checkdtlBcpService.list(new QueryWrapper<StIvtCheckdtlBcp>().eq("check_id", dtl.getCheck_id())
.eq("status", CHECKEnum.DTL_STATUS.code("完成")));
finish_list.stream()
.map(finish -> finish.getStruct_id())
.distinct()
.forEach(struct_id -> structattrService.update(new UpdateWrapper<StIvtStructattr>().set("inv_code", "").set("lock_type", "0").eq("struct_id", struct_id)));
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
if (dtl.getIs_down().equals("1")) {
//更新终点点位状态
String point_code = dtl.getCheckpoint_id();
pointService.update(new UpdateWrapper<SchBasePoint>().lambda()
.eq(SchBasePoint::getPoint_code, point_code)
.set(SchBasePoint::getVehicle_code, dtl.getStoragevehicle_code()));
}
if (dtl.getIs_down().equals("2")) {
checkdtlBcpService.update(new UpdateWrapper<StIvtCheckdtlBcp>()
.set("status", CHECKEnum.DTL_STATUS.code("完成"))
.eq("struct_id", dtl.getStruct_id())
.eq("check_id", dtl.getCheck_id()));
//判断是否存在未完成的明细
List<StIvtCheckdtlBcp> list = checkdtlBcpService.list(new QueryWrapper<StIvtCheckdtlBcp>().eq("check_id", dtl.getCheck_id())
.ne("status", CHECKEnum.DTL_STATUS.code("完成")));
if (list.size() == 0) {
StIvtCheckmstBcp jo_mst = this.getOne(new QueryWrapper<StIvtCheckmstBcp>().eq("check_id", dtl.getCheck_id()));
jo_mst.setStatus(CHECKEnum.BILL_STATUS.code("完成"));
jo_mst.setConfirm_optid(SecurityUtils.getCurrentUserId());
jo_mst.setConfirm_optname(SecurityUtils.getCurrentNickName());
jo_mst.setConfirm_time(DateUtil.now());
//解锁起点点位、仓位
List<StIvtCheckdtlBcp> finish_list = checkdtlBcpService.list(new QueryWrapper<StIvtCheckdtlBcp>().eq("check_id", dtl.getCheck_id())
.eq("status", CHECKEnum.DTL_STATUS.code("完成")));
finish_list.stream()
.map(finish -> finish.getStruct_id())
.distinct()
.forEach(struct_id -> structattrService.update(new UpdateWrapper<StIvtStructattr>().set("inv_code", "").set("lock_type", "0").eq("struct_id", struct_id)));
}
}
}
}

View File

@@ -27,6 +27,9 @@ import org.nl.modules.system.util.CodeUtil;
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService;
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr;
import org.nl.wms.product_manage.sch.service.TaskService;
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint;
import org.nl.wms.scheduler_manage.service.point.dao.mapper.SchBasePointMapper;
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
import org.nl.wms.storage_manage.IOSEnum;
@@ -45,10 +48,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.function.Consumer;
/**
@@ -72,6 +72,10 @@ public class StIvtShutframeinvBcpServiceImpl extends ServiceImpl<StIvtShutframei
private StIvtStructivtBcpMapper bcpMapper;
@Autowired
private ISchBaseTaskService taskService;
@Autowired
private SchBasePointMapper pointMapper;
@Autowired
private ISchBasePointService pointService;
@Override
@@ -92,6 +96,13 @@ public class StIvtShutframeinvBcpServiceImpl extends ServiceImpl<StIvtShutframei
//根据任务号查询对应的任务组
SchBaseTask task = taskService.getOne(new QueryWrapper<SchBaseTask>().eq("task_id", task_id));
String point_code = task.getPoint_code2();
String vehicle_code = task.getVehicle_code();
pointService.update(new UpdateWrapper<SchBasePoint>().lambda()
.eq(SchBasePoint::getPoint_code, point_code)
.set(SchBasePoint::getVehicle_code, vehicle_code));
List<SchBaseTask> task_list = taskService.list(new QueryWrapper<SchBaseTask>()
.eq("task_group_id", task.getTask_group_id())
.ne("task_status", StatusEnum.TASK_FINISH)
@@ -142,7 +153,10 @@ public class StIvtShutframeinvBcpServiceImpl extends ServiceImpl<StIvtShutframei
Assert.notNull(new Object[]{form, form.get("shutframeinv_id")}, "请求参数不能为空");
//查询可用的半成品移出点位
List<String> point_list = Arrays.asList(new String[]{"PP01", "PP02"});
Map map = new HashMap<>();
map.put("region_code", "A1_BCP_PD");
List<Map> point_list = pointMapper.canUsePoint(map);
if (point_list.size() < 2) {
throw new BadRequestException("拼盘需要两个可用的拼盘点位!");
}
@@ -154,7 +168,7 @@ public class StIvtShutframeinvBcpServiceImpl extends ServiceImpl<StIvtShutframei
PointEvent event = PointEvent.builder()
.type(AcsTaskEnum.TASK_STRUCT_SHUT.getCode())
.point_code1(list.get(0).getTurnin_struct_code())
.point_code2(point_list.get(0))
.point_code2((String) point_list.get(0).get("point_code"))
.task_group_id(task_group_id)
.vehicle_code(list.get((0)).getStoragevehicle_code_in())
.product_area(mst.getWorkshop_id())
@@ -163,7 +177,7 @@ public class StIvtShutframeinvBcpServiceImpl extends ServiceImpl<StIvtShutframei
PointEvent event2 = PointEvent.builder()
.type(AcsTaskEnum.TASK_STRUCT_SHUT.getCode())
.point_code1(list.get(0).getTurnout_struct_code())
.point_code2(point_list.get(1))
.point_code2((String) point_list.get(1).get("point_code"))
.vehicle_code(list.get((0)).getStoragevehicle_code())
.product_area(mst.getWorkshop_id())
.build();