Browse Source

opt:出库完成相关逻辑修改。

feature/forewarning_management
龚宝雄 4 weeks ago
parent
commit
46dd98d5cd
  1. 4
      nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/query/PageQuery.java
  2. 42
      nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/secutiry/MobileAuthorizationController.java
  3. 3
      nladmin-system/nlsso-server/src/main/java/org/nl/system/service/secutiry/dto/AuthUserDto.java
  4. 14
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleextService.java
  5. 54
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml
  6. 13
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleextServiceImpl.java
  7. 12
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/decision_manage/service/strategyConfig/decisioner/impl/base/AlleyAveRuleHandler.java
  8. 18
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/controller/PdaIosCheckController.java
  9. 2
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/controller/PdaIosInController.java
  10. 7
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/PdaIosInService.java
  11. 37
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosInServiceImpl.java
  12. 1
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/util/PdaResponse.java
  13. 4
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/IOStorInvDisMapper.xml
  14. 4
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtMoreorlessdtlMapper.xml
  15. 14
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java
  16. 7
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java
  17. 10
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtMoveinvServiceImpl.java
  18. 12
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtMoveinvdtlServiceImpl.java
  19. 133
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/util/UpdateIvtUtils.java

4
nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/query/PageQuery.java

@ -27,12 +27,12 @@ public class PageQuery implements Serializable {
/** /**
* 分页大小 * 分页大小
*/ */
private Integer size; private Integer size=100;
/** /**
* 当前页数 * 当前页数
*/ */
private Integer page; private Integer page=0;
/** /**
* 排序列 * 排序列

42
nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/secutiry/MobileAuthorizationController.java

@ -8,9 +8,9 @@ import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.common.base.TableDataInfo;
import org.nl.common.exception.BadRequestException; import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.RsaUtils; import org.nl.common.utils.RsaUtils;
import org.nl.common.utils.dto.CurrentUser; import org.nl.common.utils.dto.CurrentUser;
@ -21,6 +21,7 @@ import org.nl.system.service.secutiry.dto.AuthUserDto;
import org.nl.system.service.user.ISysUserService; import org.nl.system.service.user.ISysUserService;
import org.nl.system.service.user.dao.SysUser; import org.nl.system.service.user.dao.SysUser;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@ -30,6 +31,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @Author: lyd * @Author: lyd
@ -38,14 +40,46 @@ import java.util.List;
*/ */
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/mobile/auth") @RequestMapping("/api/bigScreenScreen")
public class MobileAuthorizationController { public class MobileAuthorizationController {
@Autowired @Autowired
private ISysUserService userService; private ISysUserService userService;
@Autowired @Autowired
private ISysRoleService roleService; private ISysRoleService roleService;
@PostMapping(value = "/login") @PostMapping("/login")
@SaIgnore
//("手持登陆验证")
public ResponseEntity<Object> handLogin(@RequestBody Map<String, String> whereJson) {
SysUser userInfo = userService.getOne(new QueryWrapper<SysUser>().eq("username", whereJson.get("user")));
if (userInfo == null || !userInfo.getPassword().equals(SaSecureUtil.md5BySalt(RsaUtils.decryptByPrivateKey(RsaUtils.KEY, whereJson.get("password")), "salt"))) { // 这里需要密码加密
throw new BadRequestException("账号或密码错误");
}
if (!userInfo.getIs_used()) {
throw new BadRequestException("账号未激活");
}
List<String> permissionList = roleService.getPermissionList((JSONObject) JSON.toJSON(userInfo));
// 登录输入,登出删除
CurrentUser user = new CurrentUser();
user.setId(userInfo.getUser_id());
user.setUsername(userInfo.getUsername());
user.setPresonName((userInfo.getPerson_name()));
user.setUser(userInfo);
user.setPermissions(permissionList);
// SaLoginModel 配置登录相关参数
StpUtil.login(userInfo.getUser_id(), new SaLoginModel()
.setDevice("PC") // 此次登录的客户端设备类型, 用于[同端互斥登录]时指定此次登录的设备类型
.setExtra("loginInfo", JSONObject.toJSONString(user)) // Token挂载的扩展参数 (此方法只有在集成jwt插件时才会生效)
);
JSONObject result = new JSONObject();
result.put("token", StpUtil.getTokenValue());
result.put("roles", permissionList);
result.put("user", user);
return new ResponseEntity<>(TableDataInfo.buildJson(result), HttpStatus.OK);
}
@PostMapping(value = "/userLogin")
@SaIgnore @SaIgnore
public ResponseEntity<Object> login(@Validated @RequestBody AuthUserDto authUser, HttpServletRequest request) throws Exception { public ResponseEntity<Object> login(@Validated @RequestBody AuthUserDto authUser, HttpServletRequest request) throws Exception {
String salt = "salt"; String salt = "salt";

3
nladmin-system/nlsso-server/src/main/java/org/nl/system/service/secutiry/dto/AuthUserDto.java

@ -30,8 +30,7 @@ public class AuthUserDto {
private String username; private String username;
private String user;
private String password; private String password;
private String code; private String code;

14
nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleextService.java

@ -27,18 +27,4 @@ public interface IMdPbStoragevehicleextService extends IService<MdPbStoragevehic
*/ */
IPage<JSONObject> queryAll(Map whereJson, PageQuery page); IPage<JSONObject> queryAll(Map whereJson, PageQuery page);
/**
* 更新库存以及仓位状态
* @param updateIvtList {
* type: 更新类型
* storagevehicle_code 载具编码
* material_id 物料标识
* pcsn 批次
* qty_unit_id 计量单位标识
* qty_unit_name 计量单位名称
* change_qty 变动数量
* remark 备注
* }
*/
void updateIvt(List<JSONObject> updateIvtList);
} }

54
nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml

@ -4,7 +4,7 @@
<select id="getCanuseIvt" resultType="com.alibaba.fastjson.JSONObject"> <select id="getCanuseIvt" resultType="com.alibaba.fastjson.JSONObject">
SELECT SELECT
ext.storagevehicleext_id, ext.group_id as storagevehicleext_id,
ext.storagevehicle_code, ext.storagevehicle_code,
ext.material_id, ext.material_id,
material.material_code, material.material_code,
@ -12,7 +12,7 @@
ext.pcsn, ext.pcsn,
ext.qty_unit_id, ext.qty_unit_id,
ext.qty_unit_name, ext.qty_unit_name,
ext.canuse_qty AS qty, ext.qty,
ext.frozen_qty, ext.frozen_qty,
attr.sect_name AS turnout_sect_name, attr.sect_name AS turnout_sect_name,
attr.sect_code AS turnout_sect_code, attr.sect_code AS turnout_sect_code,
@ -20,13 +20,13 @@
attr.struct_id, attr.struct_id,
attr.struct_code AS turnout_struct_code attr.struct_code AS turnout_struct_code
FROM FROM
md_pb_storagevehicleext ext md_pb_groupplate ext
INNER JOIN md_me_materialbase material ON material.material_id = ext.material_id INNER JOIN md_me_materialbase material ON material.material_id = ext.material_id
INNER JOIN st_ivt_structattr attr ON ext.storagevehicle_code = attr.storagevehicle_code INNER JOIN st_ivt_structattr attr ON ext.storagevehicle_code = attr.storagevehicle_code
<where> <where>
attr.lock_type = '0' attr.lock_type = '0'
AND attr.is_used = "1" AND attr.is_used = "1"
AND ext.canuse_qty > 0 AND ext.qty > 0
<if test="param.stor_id != null and param.stor_id != ''"> <if test="param.stor_id != null and param.stor_id != ''">
AND AND
attr.stor_id LIKE #{param.stor_id} attr.stor_id LIKE #{param.stor_id}
@ -53,19 +53,19 @@
</if> </if>
</where> </where>
ORDER BY ext.insert_time Desc ORDER BY ext.create_time Desc
</select> </select>
<select id="queryAllByPage" resultType="com.alibaba.fastjson.JSONObject"> <select id="queryAllByPage" resultType="com.alibaba.fastjson.JSONObject">
SELECT SELECT
ext.storagevehicleext_id, ext.group_id as storagevehicleext_id,
ext.storagevehicle_code, ext.storagevehicle_code,
ext.pcsn, ext.pcsn,
ext.qty_unit_name, ext.qty_unit_name,
ext.canuse_qty, ext.qty,
ext.frozen_qty, ext.frozen_qty,
ext.remark, ext.remark,
ext.insert_time, ext.create_time,
attr.struct_code, attr.struct_code,
attr.struct_name, attr.struct_name,
attr.stor_name, attr.stor_name,
@ -73,7 +73,7 @@
mater.material_code, mater.material_code,
mater.material_name mater.material_name
FROM FROM
md_pb_storagevehicleext ext md_pb_groupplate ext
INNER JOIN st_ivt_structattr attr ON ext.storagevehicle_code = attr.storagevehicle_code INNER JOIN st_ivt_structattr attr ON ext.storagevehicle_code = attr.storagevehicle_code
INNER JOIN md_me_materialbase mater ON mater.material_id = ext.material_id INNER JOIN md_me_materialbase mater ON mater.material_id = ext.material_id
<where> <where>
@ -105,14 +105,14 @@
ext.pcsn LIKE #{param.pcsn} ext.pcsn LIKE #{param.pcsn}
</if> </if>
</where> </where>
ORDER BY ext.insert_time Desc ORDER BY ext.create_time Desc
</select> </select>
<select id="queryCanuseSum" resultType="java.math.BigDecimal"> <select id="queryCanuseSum" resultType="java.math.BigDecimal">
SELECT SELECT
SUM(canuse_qty) SUM(qty)
FROM FROM
md_pb_storagevehicleext ex md_pb_groupplate ex
LEFT JOIN st_ivt_structattr st on ex.storagevehicle_code = st.storagevehicle_code LEFT JOIN st_ivt_structattr st on ex.storagevehicle_code = st.storagevehicle_code
<where> <where>
ex.material_id = #{material_id} ex.material_id = #{material_id}
@ -127,7 +127,7 @@
<select id="queryOutAllocation" resultType="org.nl.wms.basedata_manage.service.dto.MdPbStoragevehicleextDto"> <select id="queryOutAllocation" resultType="org.nl.wms.basedata_manage.service.dto.MdPbStoragevehicleextDto">
SELECT ex.*,st.sect_id,st.sect_code,st.sect_name,st.struct_id,st.struct_code,st.struct_name SELECT ex.*,st.sect_id,st.sect_code,st.sect_name,st.struct_id,st.struct_code,st.struct_name
FROM md_pb_storagevehicleext ex LEFT JOIN st_ivt_structattr st on ex.storagevehicle_code = st.storagevehicle_code FROM md_pb_groupplate ex LEFT JOIN st_ivt_structattr st on ex.storagevehicle_code = st.storagevehicle_code
<where> <where>
material_id = #{material_id} material_id = #{material_id}
AND AND
@ -152,19 +152,19 @@
mater.material_code AS mater_code, mater.material_code AS mater_code,
mater.material_name AS mater_name, mater.material_name AS mater_name,
ext.pcsn AS batch_no, ext.pcsn AS batch_no,
ext.canuse_qty AS quantity, ext.qty AS quantity,
unit.unit_code AS unit_code, unit.unit_code AS unit_code,
unit.unit_name AS unit_name, unit.unit_name AS unit_name,
ext.insert_time AS in_time ext.create_time AS in_time
FROM FROM
md_pb_storagevehicleext ext md_pb_groupplate ext
INNER JOIN st_ivt_structattr attr ON ext.storagevehicle_code = attr.storagevehicle_code INNER JOIN st_ivt_structattr attr ON ext.storagevehicle_code = attr.storagevehicle_code
INNER JOIN md_me_materialbase mater ON mater.material_id = ext.material_id INNER JOIN md_me_materialbase mater ON mater.material_id = ext.material_id
INNER JOIN md_pb_measureunit unit ON ext.qty_unit_id = unit.measure_unit_id INNER JOIN md_pb_measureunit unit ON ext.qty_unit_id = unit.measure_unit_id
<where> <where>
attr.lock_type = '0' attr.lock_type = '0'
AND attr.is_used = "1" AND attr.is_used = "1"
AND ext.canuse_qty > 0 AND ext.qty > 0
<if test="param.mater_code != null and param.mater_code != ''"> <if test="param.mater_code != null and param.mater_code != ''">
AND AND
mater.material_code = #{param.mater_code} mater.material_code = #{param.mater_code}
@ -181,7 +181,7 @@
</if> </if>
</where> </where>
ORDER BY ext.insert_time Desc ORDER BY ext.create_time Desc
</select> </select>
<select id="getIosDtl" resultType="com.alibaba.fastjson.JSONObject"> <select id="getIosDtl" resultType="com.alibaba.fastjson.JSONObject">
@ -193,12 +193,12 @@
mater.material_name, mater.material_name,
ext.storagevehicle_code, ext.storagevehicle_code,
ext.pcsn, ext.pcsn,
ext.canuse_qty AS qty, ext.qty,
ext.qty_unit_name, ext.qty_unit_name,
ext.qty_unit_id, ext.qty_unit_id,
ext.storagevehicleext_id ext.group_id as storagevehicleext_id
FROM FROM
md_pb_storagevehicleext ext md_pb_groupplate ext
INNER JOIN sch_base_point point ON ext.storagevehicle_code = point.vehicle_code INNER JOIN sch_base_point point ON ext.storagevehicle_code = point.vehicle_code
INNER JOIN st_ivt_iostorinvdis dis ON dis.iostorinvdis_id = point.ios_id INNER JOIN st_ivt_iostorinvdis dis ON dis.iostorinvdis_id = point.ios_id
INNER JOIN st_ivt_iostorinv mst ON dis.iostorinv_id = mst.iostorinv_id INNER JOIN st_ivt_iostorinv mst ON dis.iostorinv_id = mst.iostorinv_id
@ -211,19 +211,19 @@
</if> </if>
</where> </where>
ORDER BY ext.insert_time Desc ORDER BY ext.create_time Desc
</select> </select>
<select id="queryAvailableInv" resultType="org.nl.wms.basedata_manage.service.dto.MdPbStoragevehicleextDto"> <select id="queryAvailableInv" resultType="org.nl.wms.basedata_manage.service.dto.MdPbStoragevehicleextDto">
SELECT SELECT
ext.storagevehicleext_id, ext.group_id as storagevehicleext_id,
ext.storagevehicle_code, ext.storagevehicle_code,
ext.pcsn, ext.pcsn,
ext.qty_unit_name, ext.qty_unit_name,
ext.canuse_qty, ext.qty,
ext.frozen_qty, ext.frozen_qty,
ext.remark, ext.remark,
ext.insert_time, ext.create_time,
attr.sect_id, attr.sect_id,
attr.sect_code, attr.sect_code,
attr.sect_name, attr.sect_name,
@ -233,7 +233,7 @@
mater.material_code, mater.material_code,
mater.material_name mater.material_name
FROM FROM
md_pb_storagevehicleext ext md_pb_groupplate ext
INNER JOIN st_ivt_structattr attr ON ext.storagevehicle_code = attr.storagevehicle_code INNER JOIN st_ivt_structattr attr ON ext.storagevehicle_code = attr.storagevehicle_code
INNER JOIN md_me_materialbase mater ON mater.material_id = ext.material_id INNER JOIN md_me_materialbase mater ON mater.material_id = ext.material_id
<where> <where>
@ -263,6 +263,6 @@
ext.pcsn LIKE #{params.pcsn} ext.pcsn LIKE #{params.pcsn}
</if> </if>
</where> </where>
ORDER BY ext.insert_time ORDER BY ext.create_time
</select> </select>
</mapper> </mapper>

13
nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleextServiceImpl.java

@ -26,11 +26,7 @@ import java.util.Map;
@Service @Service
public class MdPbStoragevehicleextServiceImpl extends ServiceImpl<MdPbStoragevehicleextMapper, MdPbStoragevehicleext> implements IMdPbStoragevehicleextService { public class MdPbStoragevehicleextServiceImpl extends ServiceImpl<MdPbStoragevehicleextMapper, MdPbStoragevehicleext> implements IMdPbStoragevehicleextService {
/**
* 更新库存工具类
*/
@Autowired
private UpdateIvtUtils updateIvtUtils;
@Override @Override
public IPage<JSONObject> queryAll(Map whereJson, PageQuery page) { public IPage<JSONObject> queryAll(Map whereJson, PageQuery page) {
@ -38,10 +34,5 @@ public class MdPbStoragevehicleextServiceImpl extends ServiceImpl<MdPbStorageveh
whereJson); whereJson);
} }
@Override
public void updateIvt(List<JSONObject> updateIvtList) {
for (JSONObject json : updateIvtList) {
updateIvtUtils.updateIvt(json);
}
}
} }

12
nladmin-system/nlsso-server/src/main/java/org/nl/wms/decision_manage/service/strategyConfig/decisioner/impl/base/AlleyAveRuleHandler.java

@ -74,20 +74,8 @@ public class AlleyAveRuleHandler extends Decisioner<Structattr, JSONObject> {
return 0; return 0;
}); });
List<Structattr> subList = list.subList(0, Math.min(list.size(), 10)); List<Structattr> subList = list.subList(0, Math.min(list.size(), 10));
Structattr result = iStructattrService.getOne(
new LambdaQueryWrapper<Structattr>()
.eq(Structattr::getStruct_code, subList.get(0).getStruct_code())
);
if (result.getStoragevehicle_code() != null || !"00".equals(result.getLock_type())) {
log.error("均衡策略分配异常,出现流程节点完成库存延迟锁定,载具号" + param.getString("vehicle_code") + "分配异常,仓位: " + result.getStruct_code() + ",该仓位被其他任务的载具锁定或其锁类型锁住");
subList = subList.stream().filter(r -> !r.getStruct_code().equals(result.getStruct_code())).collect(Collectors.toList());
}
log.info("均衡策略结果:载具号:" + param.getString("vehicle_code") + "分配结果: " + subList.stream().map(Structattr::getStruct_code).collect(Collectors.toList())); log.info("均衡策略结果:载具号:" + param.getString("vehicle_code") + "分配结果: " + subList.stream().map(Structattr::getStruct_code).collect(Collectors.toList()));
log.info("均衡策略:载具号:" + param.getString("vehicle_code") + "获取仓位耗时:{}", System.currentTimeMillis() - startTime1); log.info("均衡策略:载具号:" + param.getString("vehicle_code") + "获取仓位耗时:{}", System.currentTimeMillis() - startTime1);
if (subList.size() == 0) {
log.error("均衡策略结果:载具号:" + param.getString("vehicle_code") + "当前分配策略货位数量为0");
throw new BadRequestException("均衡策略结果:载具号:" + param.getString("vehicle_code") + "当前分配策略货位数量为0");
}
return subList; return subList;
} }

18
nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/controller/PdaIosCheckController.java

@ -5,8 +5,11 @@ import cn.dev33.satoken.annotation.SaIgnore;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.common.base.TableDataInfo;
import org.nl.common.logging.annotation.Log; import org.nl.common.logging.annotation.Log;
import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
import org.nl.wms.pda.ios_manage.service.PdaIosCheckService; import org.nl.wms.pda.ios_manage.service.PdaIosCheckService;
import org.nl.wms.pda.ios_manage.service.PdaIosInService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
@ -25,13 +28,14 @@ import org.springframework.web.bind.annotation.RestController;
*/ */
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor
@RequestMapping("/api/pda/iosCheck") @RequestMapping("/api/groupMater")
@Slf4j @Slf4j
public class PdaIosCheckController { public class PdaIosCheckController {
@Autowired @Autowired
private PdaIosCheckService pdaIosCheckService; private PdaIosCheckService pdaIosCheckService;
@Autowired
private PdaIosInService pdaIosInService;
@PostMapping("/getDtl") @PostMapping("/getDtl")
@Log("获取盘点明细") @Log("获取盘点明细")
@SaIgnore @SaIgnore
@ -39,6 +43,16 @@ public class PdaIosCheckController {
return new ResponseEntity<>(pdaIosCheckService.getDtl(whereJson), HttpStatus.OK); return new ResponseEntity<>(pdaIosCheckService.getDtl(whereJson), HttpStatus.OK);
} }
/**
* 组盘获取物料列表
*/
@PostMapping("/maters")
@Log("获取物料列表")
@SaIgnore
public ResponseEntity<TableDataInfo<MdMeMaterialbase>> getMaterialList(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(pdaIosInService.getMaterialList(whereJson), HttpStatus.OK);
}
@PostMapping("/confirm") @PostMapping("/confirm")
@Log("确认") @Log("确认")
@SaIgnore @SaIgnore

2
nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/controller/PdaIosInController.java

@ -99,7 +99,7 @@ public class PdaIosInController {
@PostMapping("/confirmIn") @PostMapping("/confirmIn")
@Log("组盘入库确认") @Log("组盘入库确认")
public ResponseEntity<Object> confirmIn(@RequestBody JSONObject whereJson) { public ResponseEntity<Object> confirmIn(@RequestBody JSONObject whereJson) {
assertNotBlankJson(whereJson, "请求参数不能为空", "vehicle_code", "sect_id"); assertNotBlankJson(whereJson, "请求参数不能为空", "vehicle_code", "sect_id", "site_code");
return new ResponseEntity<>(pdaIosInService.confirmIn(whereJson), HttpStatus.OK); return new ResponseEntity<>(pdaIosInService.confirmIn(whereJson), HttpStatus.OK);
} }

7
nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/PdaIosInService.java

@ -2,10 +2,13 @@ package org.nl.wms.pda.ios_manage.service;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import org.nl.common.base.TableDataInfo; import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.vo.SelectItemVo;
import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase; import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
import org.nl.wms.pda.util.PdaResponse; import org.nl.wms.pda.util.PdaResponse;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import java.util.List;
/** /**
* <p> * <p>
* 手持IOS 服务类 * 手持IOS 服务类
@ -70,7 +73,7 @@ public interface PdaIosInService {
* *
* @return PdaResponse * @return PdaResponse
*/ */
PdaResponse getVehicleMaterial(JSONObject whereJson); JSONObject getVehicleMaterial(JSONObject whereJson);
@ -79,7 +82,7 @@ public interface PdaIosInService {
* *
* @return PdaResponse * @return PdaResponse
*/ */
PdaResponse getSect(JSONObject whereJson); List<SelectItemVo> getSect(JSONObject whereJson);
/** /**

37
nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosInServiceImpl.java

@ -13,6 +13,7 @@ import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.nl.common.base.TableDataInfo; import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery; import org.nl.common.domain.query.PageQuery;
import org.nl.common.domain.vo.SelectItemVo;
import org.nl.common.exception.BadRequestException; import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.IdUtil; import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
@ -222,13 +223,14 @@ public class PdaIosInServiceImpl implements PdaIosInService {
} }
@Override @Override
public PdaResponse getSect(JSONObject whereJson) { public List<SelectItemVo> getSect(JSONObject whereJson) {
PageQuery pageQuery = new PageQuery(); PageQuery pageQuery = new PageQuery();
pageQuery.setPage(whereJson.getInteger("page") - 1);
pageQuery.setSize(whereJson.getInteger("size"));
IPage<SectattrDto> sectList = iSectattrService.queryAll(new HashMap(), pageQuery); IPage<SectattrDto> sectList = iSectattrService.queryAll(new HashMap(), pageQuery);
sectList.getRecords().forEach(r -> r.setSect_name(r.getStor_name() + "-" + r.getSect_name())); List<SelectItemVo> selectList = new ArrayList<>();
return PdaResponse.requestParamOk(sectList); sectList.getRecords().forEach(r ->
selectList.add(SelectItemVo.builder().text(r.getStor_name() + "-" + r.getSect_name()).value(r.getSect_id()).build())
);
return selectList;
} }
@Override @Override
@ -241,10 +243,14 @@ public class PdaIosInServiceImpl implements PdaIosInService {
} }
@Override @Override
public PdaResponse getVehicleMaterial(JSONObject whereJson) { public JSONObject getVehicleMaterial(JSONObject whereJson) {
whereJson.put("status", GROUP_PLATE_STATUS.code("组盘")); whereJson.put("status", GROUP_PLATE_STATUS.code("组盘"));
whereJson.put("vehicleCode", whereJson.getString("search")); whereJson.put("vehicleCode", whereJson.getString("search"));
return PdaResponse.requestParamOk(mdPbGroupplateMapper.getVehicleMaterial(whereJson)); List<JSONObject> list = mdPbGroupplateMapper.getVehicleMaterial(whereJson);
if (CollectionUtils.isEmpty(list)) {
throw new BadRequestException("此载具未组盘,请检查!");
}
return list.get(0);
} }
/** /**
@ -321,7 +327,7 @@ public class PdaIosInServiceImpl implements PdaIosInService {
params.put("pcsn", whereJson.getString("pcsn")); params.put("pcsn", whereJson.getString("pcsn"));
Structattr attrDao = iRawAssistIStorService.getStructattr(whereJson); Structattr attrDao = iRawAssistIStorService.getStructattr(whereJson);
//确定起点 //确定起点
SchBasePoint schBasePoint = iSchBasePointService.getOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getVehicle_code, whereJson.getString("vehicle_code"))); SchBasePoint schBasePoint = iSchBasePointService.getOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_code, whereJson.getString("site_code")));
if (ObjectUtil.isEmpty(schBasePoint)) { if (ObjectUtil.isEmpty(schBasePoint)) {
throw new BadRequestException("未找到载具所在的点位信息,请检查"); throw new BadRequestException("未找到载具所在的点位信息,请检查");
} }
@ -356,7 +362,10 @@ public class PdaIosInServiceImpl implements PdaIosInService {
//获取起点 //获取起点
SchBasePoint schBasePoint = iSchBasePointService SchBasePoint schBasePoint = iSchBasePointService
.getOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getVehicle_code, whereJson.getString("vehicle_code"))); .getOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getVehicle_code, whereJson.getString("vehicle_code")));
whereJson.put("point_code", schBasePoint.getPoint_code()); if (ObjectUtil.isEmpty(schBasePoint)) {
throw new BadRequestException("未找到载具所在的点位信息,请检查该载具是否绑定点位");
}
whereJson.put("point_code",whereJson.getString("site_code"));
// 预组织出入库单据实体 // 预组织出入库单据实体
Map<String, Object> jsonMst = organizeInsertData(whereJson); Map<String, Object> jsonMst = organizeInsertData(whereJson);
// 调用服务新增出入库单 // 调用服务新增出入库单
@ -422,21 +431,21 @@ public class PdaIosInServiceImpl implements PdaIosInService {
jsonMst.put("bill_status", IOSEnum.BILL_STATUS.code("生成")); jsonMst.put("bill_status", IOSEnum.BILL_STATUS.code("生成"));
jsonMst.put("total_qty", total_qty); jsonMst.put("total_qty", total_qty);
jsonMst.put("detail_count", 1); jsonMst.put("detail_count", 1);
jsonMst.put("bill_type", StatusEnum.IOBILL_TYPE_IN.code("生产库")); jsonMst.put("bill_type", StatusEnum.IOBILL_TYPE_IN.code("生产库"));
jsonMst.put("biz_date", DateUtil.now()); jsonMst.put("biz_date", DateUtil.now());
// 组织明细数据 // 组织明细数据
ArrayList<HashMap> tableData = new ArrayList<>(); ArrayList<HashMap> tableData = new ArrayList<>();
HashMap<String, String> dtl = new HashMap<>(); HashMap<String, String> dtl = new HashMap<>();
GroupPlate plateDao = plateDaoList.get(0); GroupPlate plateDao = plateDaoList.get(0);
MdMeMaterialbase materDao = iMdMeMaterialbaseService.getByCode(plateDao.getMaterial_id());
dtl.put("storagevehicle_code", plateDao.getStoragevehicle_code()); dtl.put("storagevehicle_code", plateDao.getStoragevehicle_code());
dtl.put("material_id", plateDao.getMaterial_id()); dtl.put("material_id", materDao.getMaterial_id());
dtl.put("material_code", materDao.getMaterial_code());
dtl.put("material_name", materDao.getMaterial_name());
dtl.put("pcsn", plateDao.getPcsn()); dtl.put("pcsn", plateDao.getPcsn());
dtl.put("qty_unit_id", plateDao.getQty_unit_id()); dtl.put("qty_unit_id", plateDao.getQty_unit_id());
dtl.put("qty_unit_name", plateDao.getQty_unit_name()); dtl.put("qty_unit_name", plateDao.getQty_unit_name());
dtl.put("qty", String.valueOf(total_qty)); dtl.put("qty", String.valueOf(total_qty));
MdMeMaterialbase materDao = iMdMeMaterialbaseService.getById(plateDao.getMaterial_id());
dtl.put("material_code", materDao.getMaterial_code());
dtl.put("material_name", materDao.getMaterial_name());
dtl.put("plan_qty", String.valueOf(total_qty)); dtl.put("plan_qty", String.valueOf(total_qty));
// 调用新增 // 调用新增
tableData.add(dtl); tableData.add(dtl);

1
nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/util/PdaResponse.java

@ -49,6 +49,7 @@ public class PdaResponse<T> {
.build(); .build();
} }
public static <T> TableDataInfo<T> build(IPage<T> page) { public static <T> TableDataInfo<T> build(IPage<T> page) {
TableDataInfo<T> rspData = new TableDataInfo<>(); TableDataInfo<T> rspData = new TableDataInfo<>();
rspData.setCode(String.valueOf(HttpStatus.HTTP_OK)); rspData.setCode(String.valueOf(HttpStatus.HTTP_OK));

4
nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/IOStorInvDisMapper.xml

@ -39,12 +39,12 @@
mb.material_code, mb.material_code,
mb.material_name, mb.material_name,
task.task_code, task.task_code,
ext.insert_time ext.create_time as insert_time
FROM FROM
st_ivt_iostorinvdis dis st_ivt_iostorinvdis dis
LEFT JOIN md_me_materialbase mb ON mb.material_id = dis.material_id LEFT JOIN md_me_materialbase mb ON mb.material_id = dis.material_id
LEFT JOIN sch_base_task task ON task.task_id = dis.task_id LEFT JOIN sch_base_task task ON task.task_id = dis.task_id
LEFT JOIN md_pb_storagevehicleext ext ON ext.storagevehicle_code = dis.storagevehicle_code LEFT JOIN md_pb_groupplate ext ON ext.storagevehicle_code = dis.storagevehicle_code
where where
1=1 1=1
<if test="params.iostorinvdtl_id != null"> <if test="params.iostorinvdtl_id != null">

4
nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtMoreorlessdtlMapper.xml

@ -17,12 +17,12 @@
dtl.mol_qty, dtl.mol_qty,
dtl.status, dtl.status,
dtl.source_bill_code, dtl.source_bill_code,
ext.canuse_qty AS ivt_qty ext.qty AS ivt_qty
FROM FROM
st_ivt_moreorlessdtl dtl st_ivt_moreorlessdtl dtl
LEFT JOIN st_ivt_moreorlessmst ios ON ios.mol_id = dtl.mol_id LEFT JOIN st_ivt_moreorlessmst ios ON ios.mol_id = dtl.mol_id
LEFT JOIN md_me_materialbase material ON material.material_id = dtl.material_id LEFT JOIN md_me_materialbase material ON material.material_id = dtl.material_id
INNER JOIN md_pb_storagevehicleext ext ON ext.storagevehicle_code = dtl.storagevehicle_code INNER JOIN md_pb_groupplate ext ON ext.storagevehicle_code = dtl.storagevehicle_code
AND ext.material_id = dtl.material_id AND dtl.pcsn = ext.pcsn AND ext.material_id = dtl.material_id AND dtl.pcsn = ext.pcsn
<where> <where>
ios.is_delete = '0' ios.is_delete = '0'

14
nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java

@ -452,7 +452,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
jsonIvt.put("qty_unit_name", outAllocation.getQty_unit_name()); jsonIvt.put("qty_unit_name", outAllocation.getQty_unit_name());
jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty()); jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty());
updateIvtList.add(jsonIvt); updateIvtList.add(jsonIvt);
iMdPbStoragevehicleextService.updateIvt(updateIvtList); iMdPbGroupPlateService.updateIvt(updateIvtList);
//分配完成 结束分配 //分配完成 结束分配
if (unassign_qty==0){ if (unassign_qty==0){
@ -521,7 +521,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
jsonIvt.put("qty_unit_name", ioStorInvDis.getQty_unit_name()); jsonIvt.put("qty_unit_name", ioStorInvDis.getQty_unit_name());
jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty()); jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty());
updateIvtList.add(jsonIvt); updateIvtList.add(jsonIvt);
iMdPbStoragevehicleextService.updateIvt(updateIvtList); iMdPbGroupPlateService.updateIvt(updateIvtList);
//解锁库位 //解锁库位
JSONObject unlock_map = new JSONObject(); JSONObject unlock_map = new JSONObject();
@ -667,7 +667,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
jsonIvt.put("qty_unit_name", outAllocation.getQty_unit_name()); jsonIvt.put("qty_unit_name", outAllocation.getQty_unit_name());
jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty()); jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty());
updateIvtList.add(jsonIvt); updateIvtList.add(jsonIvt);
iMdPbStoragevehicleextService.updateIvt(updateIvtList); iMdPbGroupPlateService.updateIvt(updateIvtList);
//分配完成 结束分配 //分配完成 结束分配
if (unassign_qty==0){ if (unassign_qty==0){
@ -736,7 +736,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
jsonIvt.put("qty_unit_name", ioStorInvDis.getQty_unit_name()); jsonIvt.put("qty_unit_name", ioStorInvDis.getQty_unit_name());
jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty()); jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty());
updateIvtList.add(jsonIvt); updateIvtList.add(jsonIvt);
iMdPbStoragevehicleextService.updateIvt(updateIvtList); iMdPbGroupPlateService.updateIvt(updateIvtList);
//解锁库位 //解锁库位
JSONObject unlock_map = new JSONObject(); JSONObject unlock_map = new JSONObject();
@ -885,7 +885,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
jsonIvt.put("qty_unit_name", dtl.getQty_unit_name()); jsonIvt.put("qty_unit_name", dtl.getQty_unit_name());
jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty()); jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty());
updateIvtList.add(jsonIvt); updateIvtList.add(jsonIvt);
iMdPbStoragevehicleextService.updateIvt(updateIvtList); iMdPbGroupPlateService.updateIvt(updateIvtList);
} }
//更新详情 //更新详情
@ -944,7 +944,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
jsonIvt.put("qty_unit_name", ioStorInvDis.getQty_unit_name()); jsonIvt.put("qty_unit_name", ioStorInvDis.getQty_unit_name());
jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty()); jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty());
updateIvtList.add(jsonIvt); updateIvtList.add(jsonIvt);
iMdPbStoragevehicleextService.updateIvt(updateIvtList); iMdPbGroupPlateService.updateIvt(updateIvtList);
//解锁库位 //解锁库位
JSONObject unlock_map = new JSONObject(); JSONObject unlock_map = new JSONObject();
@ -1119,7 +1119,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
jsonIvt.put("qty_unit_name", ioStorInvDis.getQty_unit_name()); jsonIvt.put("qty_unit_name", ioStorInvDis.getQty_unit_name());
jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty()); jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty());
updateIvtList.add(jsonIvt); updateIvtList.add(jsonIvt);
iMdPbStoragevehicleextService.updateIvt(updateIvtList); iMdPbGroupPlateService.updateIvt(updateIvtList);
} }
//更新分配明细数据 //更新分配明细数据

7
nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java

@ -32,6 +32,7 @@ import org.nl.wms.sch_manage.service.dao.SchBaseTask;
import org.nl.wms.sch_manage.service.util.tasks.StInTask; import org.nl.wms.sch_manage.service.util.tasks.StInTask;
import org.nl.wms.warehouse_management.enums.IOSConstant; import org.nl.wms.warehouse_management.enums.IOSConstant;
import org.nl.wms.warehouse_management.enums.IOSEnum; import org.nl.wms.warehouse_management.enums.IOSEnum;
import org.nl.wms.warehouse_management.service.IMdPbGroupplateService;
import org.nl.wms.warehouse_management.service.IRawAssistIStorService; import org.nl.wms.warehouse_management.service.IRawAssistIStorService;
import org.nl.wms.warehouse_management.service.dao.GroupPlate; import org.nl.wms.warehouse_management.service.dao.GroupPlate;
import org.nl.wms.warehouse_management.service.dao.IOStorInv; import org.nl.wms.warehouse_management.service.dao.IOStorInv;
@ -78,7 +79,7 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
private MdPbStoragevehicleinfoMapper mdPbStoragevehicleinfoMapper; private MdPbStoragevehicleinfoMapper mdPbStoragevehicleinfoMapper;
@Resource @Resource
private IMdPbStoragevehicleextService iMdPbStoragevehicleextService; private IMdPbGroupplateService iMdPbGroupPlateService;
@Resource @Resource
private MdPbGroupplateServiceImpl mdPbGroupplateService; private MdPbGroupplateServiceImpl mdPbGroupplateService;
@ -588,7 +589,7 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
jsonIvt.put("qty_unit_name", ioStorInvDis.getQty_unit_name()); jsonIvt.put("qty_unit_name", ioStorInvDis.getQty_unit_name());
jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty()); jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty());
updateIvtList.add(jsonIvt); updateIvtList.add(jsonIvt);
iMdPbStoragevehicleextService.updateIvt(updateIvtList); iMdPbGroupPlateService.updateIvt(updateIvtList);
} }
//更新详情数据 //更新详情数据
@ -667,7 +668,7 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
jsonIvt.put("qty_unit_name", ioStorInvDis.getQty_unit_name()); jsonIvt.put("qty_unit_name", ioStorInvDis.getQty_unit_name());
jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty()); jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty());
updateIvtList.add(jsonIvt); updateIvtList.add(jsonIvt);
iMdPbStoragevehicleextService.updateIvt(updateIvtList); iMdPbGroupPlateService.updateIvt(updateIvtList);
// 查询该明细下是否还有未完成的分配明细 // 查询该明细下是否还有未完成的分配明细
int countDis = ioStorInvDisMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDis.class) int countDis = ioStorInvDisMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDis.class)
.eq(IOStorInvDis::getIostorinvdtl_id,ioStorInvDis.getIostorinvdtl_id()) .eq(IOStorInvDis::getIostorinvdtl_id,ioStorInvDis.getIostorinvdtl_id())

10
nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtMoveinvServiceImpl.java

@ -22,6 +22,7 @@ import org.nl.wms.sch_manage.service.dao.SchBaseTask;
import org.nl.wms.sch_manage.service.util.tasks.MoveTask; import org.nl.wms.sch_manage.service.util.tasks.MoveTask;
import org.nl.wms.warehouse_management.enums.IOSConstant; import org.nl.wms.warehouse_management.enums.IOSConstant;
import org.nl.wms.warehouse_management.enums.IOSEnum; import org.nl.wms.warehouse_management.enums.IOSEnum;
import org.nl.wms.warehouse_management.service.IMdPbGroupplateService;
import org.nl.wms.warehouse_management.service.IStIvtMoveinvService; import org.nl.wms.warehouse_management.service.IStIvtMoveinvService;
import org.nl.wms.warehouse_management.service.IStIvtMoveinvdtlService; import org.nl.wms.warehouse_management.service.IStIvtMoveinvdtlService;
import org.nl.wms.warehouse_management.service.dao.StIvtMoveinv; import org.nl.wms.warehouse_management.service.dao.StIvtMoveinv;
@ -32,6 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -53,10 +55,10 @@ public class StIvtMoveinvServiceImpl extends ServiceImpl<StIvtMoveinvMapper, StI
private MdPbStoragevehicleextMapper mdPbStoragevehicleextMapper; private MdPbStoragevehicleextMapper mdPbStoragevehicleextMapper;
/** /**
* 载具扩展属性服务类 * 组盘信息表
*/ */
@Autowired @Resource
private IMdPbStoragevehicleextService iMdPbStoragevehicleextService; private IMdPbGroupplateService iMdPbGroupPlateService;
/** /**
* 移库单明细服务 * 移库单明细服务
@ -222,7 +224,7 @@ public class StIvtMoveinvServiceImpl extends ServiceImpl<StIvtMoveinvMapper, StI
jsonIvtTwo.put("qty_unit_name", dtlDao.getQty_unit_name()); jsonIvtTwo.put("qty_unit_name", dtlDao.getQty_unit_name());
jsonIvtTwo.put("change_qty", dtlDao.getQty()); jsonIvtTwo.put("change_qty", dtlDao.getQty());
updateIvtList.add(jsonIvtTwo); updateIvtList.add(jsonIvtTwo);
iMdPbStoragevehicleextService.updateIvt(updateIvtList); iMdPbGroupPlateService.updateIvt(updateIvtList);
// 更新起点 // 更新起点
iStructattrService.update( iStructattrService.update(

12
nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtMoveinvdtlServiceImpl.java

@ -18,6 +18,7 @@ import org.nl.wms.sch_manage.service.dao.SchBaseTask;
import org.nl.wms.sch_manage.service.util.tasks.MoveTask; import org.nl.wms.sch_manage.service.util.tasks.MoveTask;
import org.nl.wms.warehouse_management.enums.IOSConstant; import org.nl.wms.warehouse_management.enums.IOSConstant;
import org.nl.wms.warehouse_management.enums.IOSEnum; import org.nl.wms.warehouse_management.enums.IOSEnum;
import org.nl.wms.warehouse_management.service.IMdPbGroupplateService;
import org.nl.wms.warehouse_management.service.IStIvtMoveinvdtlService; import org.nl.wms.warehouse_management.service.IStIvtMoveinvdtlService;
import org.nl.wms.warehouse_management.service.dao.StIvtMoveinvdtl; import org.nl.wms.warehouse_management.service.dao.StIvtMoveinvdtl;
import org.nl.wms.warehouse_management.service.dao.mapper.StIvtMoveinvdtlMapper; import org.nl.wms.warehouse_management.service.dao.mapper.StIvtMoveinvdtlMapper;
@ -25,6 +26,7 @@ import org.nl.wms.warehouse_management.service.dto.MoveInsertDto;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -41,10 +43,10 @@ import java.util.stream.Collectors;
public class StIvtMoveinvdtlServiceImpl extends ServiceImpl<StIvtMoveinvdtlMapper, StIvtMoveinvdtl> implements IStIvtMoveinvdtlService { public class StIvtMoveinvdtlServiceImpl extends ServiceImpl<StIvtMoveinvdtlMapper, StIvtMoveinvdtl> implements IStIvtMoveinvdtlService {
/** /**
* 载具扩展属性服务 * 组盘信息表
*/ */
@Autowired @Resource
private IMdPbStoragevehicleextService iMdPbStoragevehicleextService; private IMdPbGroupplateService iMdPbGroupPlateService;
/** /**
* 仓位服务 * 仓位服务
@ -132,7 +134,7 @@ public class StIvtMoveinvdtlServiceImpl extends ServiceImpl<StIvtMoveinvdtlMappe
updateAttrList.add(jsonAttrOut); updateAttrList.add(jsonAttrOut);
} }
this.saveBatch(moveDtlList); this.saveBatch(moveDtlList);
iMdPbStoragevehicleextService.updateIvt(updateIvtList); iMdPbGroupPlateService.updateIvt(updateIvtList);
// 锁定仓位 // 锁定仓位
iStructattrService.updateLock(updateAttrList); iStructattrService.updateLock(updateAttrList);
} }
@ -194,7 +196,7 @@ public class StIvtMoveinvdtlServiceImpl extends ServiceImpl<StIvtMoveinvdtlMappe
.eq(StIvtMoveinvdtl::getMoveinv_id, dto.getMoveinv_id()) .eq(StIvtMoveinvdtl::getMoveinv_id, dto.getMoveinv_id())
); );
// 更新库存 // 更新库存
iMdPbStoragevehicleextService.updateIvt(updateIvtList); iMdPbGroupPlateService.updateIvt(updateIvtList);
// 更新仓位 // 更新仓位
iStructattrService.update( iStructattrService.update(
new UpdateWrapper<Structattr>().lambda() new UpdateWrapper<Structattr>().lambda()

133
nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/util/UpdateIvtUtils.java

@ -6,10 +6,8 @@ import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.nl.common.exception.BadRequestException; import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService; import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService;
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext;
import org.nl.wms.warehouse_management.enums.IOSConstant; import org.nl.wms.warehouse_management.enums.IOSConstant;
import org.nl.wms.warehouse_management.enums.IOSEnum; import org.nl.wms.warehouse_management.enums.IOSEnum;
import org.nl.wms.warehouse_management.service.IMdPbGroupplateService; import org.nl.wms.warehouse_management.service.IMdPbGroupplateService;
@ -121,26 +119,27 @@ public class UpdateIvtUtils {
* @param where 输入参数 * @param where 输入参数
*/ */
private void updateAddCanuseInsertIvt(JSONObject where) { private void updateAddCanuseInsertIvt(JSONObject where) {
throw new BadRequestException("当前载具已存在库存物料,请检查数据!");
// 判断当前载具是否有物料 // 判断当前载具是否有物料
MdPbStoragevehicleext extDao = iMdPbStoragevehicleextService.getOne( // MdPbStoragevehicleext extDao = iMdPbStoragevehicleextService.getOne(
new QueryWrapper<MdPbStoragevehicleext>().lambda() // new QueryWrapper<MdPbStoragevehicleext>().lambda()
.eq(MdPbStoragevehicleext::getStoragevehicle_code, where.getString("storagevehicle_code")) // .eq(MdPbStoragevehicleext::getStoragevehicle_code, where.getString("storagevehicle_code"))
); // );
if (ObjectUtil.isNotEmpty(extDao)) { // if (ObjectUtil.isNotEmpty(extDao)) {
throw new BadRequestException("当前载具【"+extDao.getStoragevehicle_code()+"】已存在库存物料,请检查数据!"); // throw new BadRequestException("当前载具【"+extDao.getStoragevehicle_code()+"】已存在库存物料,请检查数据!");
} // }
//
// 插入数据 // // 插入数据
MdPbStoragevehicleext extParamDao = JSONObject.parseObject(JSONObject.toJSONString(where), MdPbStoragevehicleext.class); // MdPbStoragevehicleext extParamDao = JSONObject.parseObject(JSONObject.toJSONString(where), MdPbStoragevehicleext.class);
extParamDao.setStoragevehicleext_id(IdUtil.getStringId()); // extParamDao.setStoragevehicleext_id(IdUtil.getStringId());
extParamDao.setCanuse_qty(where.getBigDecimal("change_qty")); // extParamDao.setCanuse_qty(where.getBigDecimal("change_qty"));
extParamDao.setFrozen_qty(BigDecimal.valueOf(0)); // extParamDao.setFrozen_qty(BigDecimal.valueOf(0));
extParamDao.setInsert_time(DateUtil.now()); // extParamDao.setInsert_time(DateUtil.now());
extParamDao.setUpdate_optid(SecurityUtils.getCurrentUserId()); // extParamDao.setUpdate_optid(SecurityUtils.getCurrentUserId());
extParamDao.setUpdate_optname(SecurityUtils.getCurrentNickName()); // extParamDao.setUpdate_optname(SecurityUtils.getCurrentNickName());
extParamDao.setUpdate_time(DateUtil.now()); // extParamDao.setUpdate_time(DateUtil.now());
extParamDao.setRemark(where.getString("remark")); // extParamDao.setRemark(where.getString("remark"));
iMdPbStoragevehicleextService.save(extParamDao); // iMdPbStoragevehicleextService.save(extParamDao);
} }
/** /**
@ -149,30 +148,30 @@ public class UpdateIvtUtils {
*/ */
private void updateAddFrozenIvt(JSONObject where) { private void updateAddFrozenIvt(JSONObject where) {
// 找当前托盘物料库存 // 找当前托盘物料库存
MdPbStoragevehicleext extDao = iMdPbStoragevehicleextService.getOne( GroupPlate extDao = iMdPbGroupPlateService.getOne(
new QueryWrapper<MdPbStoragevehicleext>().lambda() new QueryWrapper<GroupPlate>().lambda()
.eq(MdPbStoragevehicleext::getStoragevehicle_code, where.getString("storagevehicle_code")) .eq(GroupPlate::getStoragevehicle_code, where.getString("storagevehicle_code"))
.eq(MdPbStoragevehicleext::getMaterial_id, where.getString("material_id")) .eq(GroupPlate::getMaterial_id, where.getString("material_id"))
.eq(MdPbStoragevehicleext::getPcsn, where.getString("pcsn")) .eq(GroupPlate::getPcsn, where.getString("pcsn"))
); );
if (ObjectUtil.isEmpty(extDao)) { if (ObjectUtil.isEmpty(extDao)) {
throw new BadRequestException("当前载具【"+extDao.getStoragevehicle_code()+"】不存在相关物料批次库存,请检查数据!"); throw new BadRequestException("当前载具【" + extDao.getStoragevehicle_code() + "】不存在相关物料批次库存,请检查数据!");
} }
// 减可用数 // 减可用数
double canuse_qty = NumberUtil.sub(extDao.getCanuse_qty(), where.getDoubleValue("change_qty")).doubleValue(); double canuse_qty = NumberUtil.sub(extDao.getQty(), where.getDoubleValue("change_qty")).doubleValue();
if (canuse_qty < 0) { if (canuse_qty < 0) {
throw new BadRequestException("可用数不能为负数,请检查变动数量!当前可用数为【"+extDao.getCanuse_qty()+"】当前变动数为【"+where.getDoubleValue("change_qty")+"】"); throw new BadRequestException("可用数不能为负数,请检查变动数量!当前可用数为【" + extDao.getQty() + "】当前变动数为【" + where.getDoubleValue("change_qty") + "】");
} }
// 加冻结数 // 加冻结数
double frozen_qty = NumberUtil.add(extDao.getFrozen_qty(), where.getDoubleValue("change_qty")).doubleValue(); double frozen_qty = NumberUtil.add(extDao.getFrozen_qty(), where.getDoubleValue("change_qty")).doubleValue();
extDao.setQty(BigDecimal.valueOf(canuse_qty));
extDao.setCanuse_qty(BigDecimal.valueOf(canuse_qty));
extDao.setFrozen_qty(BigDecimal.valueOf(frozen_qty)); extDao.setFrozen_qty(BigDecimal.valueOf(frozen_qty));
extDao.setUpdate_optid(SecurityUtils.getCurrentUserId()); extDao.setUpdate_optid(SecurityUtils.getCurrentUserId());
extDao.setUpdate_optname(SecurityUtils.getCurrentNickName()); extDao.setUpdate_optname(SecurityUtils.getCurrentNickName());
extDao.setUpdate_time(DateUtil.now()); extDao.setUpdate_time(DateUtil.now());
extDao.setRemark(where.getString("remark")); extDao.setRemark(where.getString("remark"));
iMdPbStoragevehicleextService.updateById(extDao); iMdPbGroupPlateService.updateById(extDao);
;
} }
/** /**
@ -181,23 +180,23 @@ public class UpdateIvtUtils {
*/ */
private void updateSubFrozenIvt(JSONObject where) { private void updateSubFrozenIvt(JSONObject where) {
// 找当前托盘物料库存 // 找当前托盘物料库存
MdPbStoragevehicleext extDao = iMdPbStoragevehicleextService.getOne( GroupPlate extDao = iMdPbGroupPlateService.getOne(
new QueryWrapper<MdPbStoragevehicleext>().lambda() new QueryWrapper<GroupPlate>().lambda()
.eq(MdPbStoragevehicleext::getStoragevehicle_code, where.getString("storagevehicle_code")) .eq(GroupPlate::getStoragevehicle_code, where.getString("storagevehicle_code"))
.eq(MdPbStoragevehicleext::getMaterial_id, where.getString("material_id")) .eq(GroupPlate::getMaterial_id, where.getString("material_id"))
.eq(MdPbStoragevehicleext::getPcsn, where.getString("pcsn")) .eq(GroupPlate::getPcsn, where.getString("pcsn"))
); );
if (ObjectUtil.isEmpty(extDao)) { if (ObjectUtil.isEmpty(extDao)) {
throw new BadRequestException("当前载具【"+extDao.getStoragevehicle_code()+"】不存在相关物料批次库存,请检查数据!"); throw new BadRequestException("当前载具【" + extDao.getStoragevehicle_code() + "】不存在相关物料批次库存,请检查数据!");
} }
// 减冻结 // 减冻结
double frozen_qty = NumberUtil.sub(extDao.getFrozen_qty(), where.getDoubleValue("change_qty")).doubleValue(); double frozen_qty = NumberUtil.sub(extDao.getFrozen_qty(), where.getDoubleValue("change_qty")).doubleValue();
if (frozen_qty < 0) { if (frozen_qty < 0) {
throw new BadRequestException("冻结数不能为负数,请检查变动数量!当前冻结数为【"+extDao.getFrozen_qty()+"】当前变动数为【"+where.getDoubleValue("change_qty")+"】"); throw new BadRequestException("冻结数不能为负数,请检查变动数量!当前冻结数为【" + extDao.getFrozen_qty() + "】当前变动数为【" + where.getDoubleValue("change_qty") + "】");
} }
// 如果可用数和冻结数都为零则删除数据 // 如果可用数和冻结数都为零则删除数据
if (frozen_qty == 0 && extDao.getCanuse_qty().doubleValue() == 0) { if (frozen_qty == 0 && extDao.getQty().doubleValue() == 0) {
iMdPbStoragevehicleextService.removeById(extDao); iMdPbStoragevehicleextService.removeById(extDao);
} else { } else {
extDao.setFrozen_qty(BigDecimal.valueOf(frozen_qty)); extDao.setFrozen_qty(BigDecimal.valueOf(frozen_qty));
@ -205,7 +204,8 @@ public class UpdateIvtUtils {
extDao.setUpdate_optname(SecurityUtils.getCurrentNickName()); extDao.setUpdate_optname(SecurityUtils.getCurrentNickName());
extDao.setUpdate_time(DateUtil.now()); extDao.setUpdate_time(DateUtil.now());
extDao.setRemark(where.getString("remark")); extDao.setRemark(where.getString("remark"));
iMdPbStoragevehicleextService.updateById(extDao); iMdPbGroupPlateService.updateById(extDao);
;
} }
} }
@ -215,12 +215,6 @@ public class UpdateIvtUtils {
*/ */
private void updateSubFrozenAddIvt(JSONObject where) { private void updateSubFrozenAddIvt(JSONObject where) {
// 找当前托盘物料库存 // 找当前托盘物料库存
// MdPbStoragevehicleext extDao = iMdPbStoragevehicleextService.getOne(
// new QueryWrapper<MdPbStoragevehicleext>().lambda()
// .eq(MdPbStoragevehicleext::getStoragevehicle_code, where.getString("storagevehicle_code"))
// .eq(MdPbStoragevehicleext::getMaterial_id, where.getString("material_id"))
// .eq(MdPbStoragevehicleext::getPcsn, where.getString("pcsn"))
// );
GroupPlate extDao = iMdPbGroupPlateService.getOne( GroupPlate extDao = iMdPbGroupPlateService.getOne(
new QueryWrapper<GroupPlate>().lambda() new QueryWrapper<GroupPlate>().lambda()
.eq(GroupPlate::getStoragevehicle_code, where.getString("storagevehicle_code")) .eq(GroupPlate::getStoragevehicle_code, where.getString("storagevehicle_code"))
@ -236,7 +230,7 @@ public class UpdateIvtUtils {
throw new BadRequestException("冻结数不能为负数,请检查变动数量!当前冻结数为【" + extDao.getFrozen_qty() + "】当前变动数为【" + where.getDoubleValue("change_qty") + "】"); throw new BadRequestException("冻结数不能为负数,请检查变动数量!当前冻结数为【" + extDao.getFrozen_qty() + "】当前变动数为【" + where.getDoubleValue("change_qty") + "】");
} }
// 加可用 // 加可用
// double canuse_qty = NumberUtil.add(extDao.getCanuse_qty(), where.getDoubleValue("change_qty")).doubleValue(); // double canuse_qty = NumberUtil.add(extDao.getQty(), where.getDoubleValue("change_qty")).doubleValue();
extDao.setFrozen_qty(BigDecimal.ZERO); extDao.setFrozen_qty(BigDecimal.ZERO);
extDao.setQty(BigDecimal.valueOf(qty)); extDao.setQty(BigDecimal.valueOf(qty));
extDao.setUpdate_optid(SecurityUtils.getCurrentUserId()); extDao.setUpdate_optid(SecurityUtils.getCurrentUserId());
@ -251,23 +245,23 @@ public class UpdateIvtUtils {
* @param where 输入参数 * @param where 输入参数
*/ */
private void updateAddCanuseIvt(JSONObject where) { private void updateAddCanuseIvt(JSONObject where) {
MdPbStoragevehicleext extDao = iMdPbStoragevehicleextService.getOne( GroupPlate extDao = iMdPbGroupPlateService.getOne(
new QueryWrapper<MdPbStoragevehicleext>().lambda() new QueryWrapper<GroupPlate>().lambda()
.eq(MdPbStoragevehicleext::getStoragevehicle_code, where.getString("storagevehicle_code")) .eq(GroupPlate::getStoragevehicle_code, where.getString("storagevehicle_code"))
.eq(MdPbStoragevehicleext::getMaterial_id, where.getString("material_id")) .eq(GroupPlate::getMaterial_id, where.getString("material_id"))
.eq(MdPbStoragevehicleext::getPcsn, where.getString("pcsn")) .eq(GroupPlate::getPcsn, where.getString("pcsn"))
); );
if (ObjectUtil.isEmpty(extDao)) { if (ObjectUtil.isEmpty(extDao)) {
throw new BadRequestException("当前载具【"+extDao.getStoragevehicle_code()+"】不存在相关物料批次库存,请检查数据!"); throw new BadRequestException("当前载具【" + extDao.getStoragevehicle_code() + "】不存在相关物料批次库存,请检查数据!");
} }
double canuse_qty = NumberUtil.add(extDao.getQty(), where.getDoubleValue("change_qty")).doubleValue();
double canuse_qty = NumberUtil.add(extDao.getCanuse_qty(), where.getDoubleValue("change_qty")).doubleValue(); extDao.setQty(BigDecimal.valueOf(canuse_qty));
extDao.setCanuse_qty(BigDecimal.valueOf(canuse_qty));
extDao.setUpdate_optid(SecurityUtils.getCurrentUserId()); extDao.setUpdate_optid(SecurityUtils.getCurrentUserId());
extDao.setUpdate_optname(SecurityUtils.getCurrentNickName()); extDao.setUpdate_optname(SecurityUtils.getCurrentNickName());
extDao.setUpdate_time(DateUtil.now()); extDao.setUpdate_time(DateUtil.now());
extDao.setRemark(where.getString("remark")); extDao.setRemark(where.getString("remark"));
iMdPbStoragevehicleextService.updateById(extDao); iMdPbGroupPlateService.updateById(extDao);
;
} }
/** /**
@ -275,26 +269,25 @@ public class UpdateIvtUtils {
* @param where 输入参数 * @param where 输入参数
*/ */
private void updateSubCanuseIvt(JSONObject where) { private void updateSubCanuseIvt(JSONObject where) {
MdPbStoragevehicleext extDao = iMdPbStoragevehicleextService.getOne( GroupPlate extDao = iMdPbGroupPlateService.getOne(
new QueryWrapper<MdPbStoragevehicleext>().lambda() new QueryWrapper<GroupPlate>().lambda()
.eq(MdPbStoragevehicleext::getStoragevehicle_code, where.getString("storagevehicle_code")) .eq(GroupPlate::getStoragevehicle_code, where.getString("storagevehicle_code"))
.eq(MdPbStoragevehicleext::getMaterial_id, where.getString("material_id")) .eq(GroupPlate::getMaterial_id, where.getString("material_id"))
.eq(MdPbStoragevehicleext::getPcsn, where.getString("pcsn")) .eq(GroupPlate::getPcsn, where.getString("pcsn"))
); );
if (ObjectUtil.isEmpty(extDao)) { if (ObjectUtil.isEmpty(extDao)) {
throw new BadRequestException("当前载具【"+extDao.getStoragevehicle_code()+"】不存在相关物料批次库存,请检查数据!"); throw new BadRequestException("当前载具【" + extDao.getStoragevehicle_code() + "】不存在相关物料批次库存,请检查数据!");
} }
double canuse_qty = NumberUtil.sub(extDao.getQty(), where.getDoubleValue("change_qty")).doubleValue();
double canuse_qty = NumberUtil.sub(extDao.getCanuse_qty(), where.getDoubleValue("change_qty")).doubleValue();
if (canuse_qty < 0) { if (canuse_qty < 0) {
throw new BadRequestException("可用数不能为负数,请检查变动数量!当前可用数为【"+extDao.getCanuse_qty()+"】当前变动数为【"+where.getDoubleValue("change_qty")+"】"); throw new BadRequestException("可用数不能为负数,请检查变动数量!当前可用数为【" + extDao.getQty() + "】当前变动数为【" + where.getDoubleValue("change_qty") + "】");
} }
extDao.setCanuse_qty(BigDecimal.valueOf(canuse_qty)); extDao.setQty(BigDecimal.valueOf(canuse_qty));
extDao.setUpdate_optid(SecurityUtils.getCurrentUserId()); extDao.setUpdate_optid(SecurityUtils.getCurrentUserId());
extDao.setUpdate_optname(SecurityUtils.getCurrentNickName()); extDao.setUpdate_optname(SecurityUtils.getCurrentNickName());
extDao.setUpdate_time(DateUtil.now()); extDao.setUpdate_time(DateUtil.now());
extDao.setRemark(where.getString("remark")); extDao.setRemark(where.getString("remark"));
iMdPbStoragevehicleextService.updateById(extDao); iMdPbGroupPlateService.updateById(extDao);
} }
} }

Loading…
Cancel
Save