Browse Source

fix:入库业务

feature/forewarning_management
zhangzq 1 month ago
parent
commit
bf1480032f
  1. 12
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dto/StrategyStructParam.java
  2. 8
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java
  3. 2
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosInServiceImpl.java
  4. 2
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/RawAssistIStorController.java
  5. 2
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IRawAssistIStorService.java
  6. 4
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/IOStorInvDtl.java
  7. 15
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/IOStorInvMapper.xml
  8. 4
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dto/GroupPlateDto.java
  9. 119
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java
  10. 5
      nladmin-ui/src/utils/request.js
  11. 12
      nladmin-ui/src/views/wms/st/inbill/AddDialog.vue
  12. 67
      nladmin-ui/src/views/wms/st/inbill/DivDialog.vue
  13. 4
      nladmin-ui/src/views/wms/st/inbill/ViewDialog.vue

12
nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dto/StrategyStructParam.java

@ -1,14 +1,20 @@
package org.nl.wms.basedata_manage.service.dto; package org.nl.wms.basedata_manage.service.dto;
import com.baomidou.mybatisplus.annotation.TableId; import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import org.nl.wms.warehouse_management.service.dao.GroupPlate; import lombok.NoArgsConstructor;
import java.math.BigDecimal; import java.math.BigDecimal;
@Data @Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class StrategyStructParam { public class StrategyStructParam {
/*
*库区暂时不用
*/
private String sect_code; private String sect_code;
/** /**
* 仓位编码 * 仓位编码

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

@ -336,7 +336,10 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
Assert.noNullElements(new Object[]{param.getStor_code(),param.getSect_code()},"请求参数不能为空"); Assert.noNullElements(new Object[]{param.getStor_code(),param.getSect_code()},"请求参数不能为空");
StSectStrategy one = iStSectStrategyService.getOne(new LambdaQueryWrapper<StSectStrategy>() StSectStrategy one = iStSectStrategyService.getOne(new LambdaQueryWrapper<StSectStrategy>()
.eq(StSectStrategy::getSect_code, param.getSect_code()) .eq(StSectStrategy::getSect_code, param.getSect_code())
.eq(StSectStrategy::getStrategy_type, StatusEnum.STRATEGY_TYPE.code("入库"))); .eq(StSectStrategy::getStrategy_type, StatusEnum.STRATEGY_TYPE.code("出库")));
if (one==null){
throw new BadRequestException("当前库区"+param.getSect_code()+"未配置入出库规则");
}
List<String> strategy = one.getStrategy(); List<String> strategy = one.getStrategy();
Map<String, Decisioner> decisionerMap = SpringContextHolder.getBeansOfType(Decisioner.class); Map<String, Decisioner> decisionerMap = SpringContextHolder.getBeansOfType(Decisioner.class);
List list = null; List list = null;
@ -364,6 +367,9 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
StSectStrategy one = iStSectStrategyService.getOne(new LambdaQueryWrapper<StSectStrategy>() StSectStrategy one = iStSectStrategyService.getOne(new LambdaQueryWrapper<StSectStrategy>()
.eq(StSectStrategy::getSect_code, param.getSect_code()) .eq(StSectStrategy::getSect_code, param.getSect_code())
.eq(StSectStrategy::getStrategy_type, StatusEnum.STRATEGY_TYPE.code("入库"))); .eq(StSectStrategy::getStrategy_type, StatusEnum.STRATEGY_TYPE.code("入库")));
if (one==null){
throw new BadRequestException("当前库区"+param.getSect_code()+"未配置入库规则");
}
List<String> strategy = one.getStrategy(); List<String> strategy = one.getStrategy();
Map<String, Decisioner> decisionerMap = SpringContextHolder.getBeansOfType(Decisioner.class); Map<String, Decisioner> decisionerMap = SpringContextHolder.getBeansOfType(Decisioner.class);
QueryWrapper<Structattr> query = new QueryWrapper<Structattr>() QueryWrapper<Structattr> query = new QueryWrapper<Structattr>()

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

@ -219,7 +219,7 @@ public class PdaIosInServiceImpl implements PdaIosInService {
whereJson.put("iostorinv_id",iostorinv_id); whereJson.put("iostorinv_id",iostorinv_id);
Map<String, Object> jsonDtl = organizeDivData(whereJson); Map<String, Object> jsonDtl = organizeDivData(whereJson);
// 调用分配 // 调用分配
iRawAssistIStorService.divStruct(jsonDtl); iRawAssistIStorService.divStruct(new JSONObject(jsonDtl));
// 下发任务 // 下发任务
sendTask(whereJson); sendTask(whereJson);
return PdaResponse.requestOk(); return PdaResponse.requestOk();

2
nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/RawAssistIStorController.java

@ -76,7 +76,7 @@ public class RawAssistIStorController {
@PostMapping("/divStruct") @PostMapping("/divStruct")
@Log("分配货位") @Log("分配货位")
public ResponseEntity<Object> divStruct(@RequestBody Map whereJson) { public ResponseEntity<Object> divStruct(@RequestBody JSONObject whereJson) {
iRawAssistIStorService.divStruct(whereJson); iRawAssistIStorService.divStruct(whereJson);
return new ResponseEntity<>(HttpStatus.NO_CONTENT); return new ResponseEntity<>(HttpStatus.NO_CONTENT);
} }

2
nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IRawAssistIStorService.java

@ -40,7 +40,7 @@ public interface IRawAssistIStorService extends IService<IOStorInv> {
List<IOStorInvDtlDto> getIODtl(Map whereJson); List<IOStorInvDtlDto> getIODtl(Map whereJson);
void divStruct(Map whereJson); void divStruct(JSONObject whereJson);
void unDivStruct(Map whereJson); void unDivStruct(Map whereJson);

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

@ -36,6 +36,10 @@ public class IOStorInvDtl implements Serializable {
* 物料标识 * 物料标识
*/ */
private String material_id; private String material_id;
/**
* 物料标识
*/
private String material_code;
/** /**
* 批次 * 批次

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

@ -48,14 +48,20 @@
</select> </select>
<select id="getGroupPlate" resultType="org.nl.wms.warehouse_management.service.dto.GroupPlateDto"> <select id="getGroupPlate" resultType="org.nl.wms.warehouse_management.service.dto.GroupPlateDto">
SELECT MAX(group_id) as group_id,storagevehicle_code,gp.material_id,pcsn,MAX(gp.qty_unit_id) as qty_unit_id,MAX(gp.qty_unit_name) as qty_unit_name,SUM(qty) as qty,SUM(qty) as plan_qty,MAX(remark),MAX(`status`),MAX(ext_code) as ext_code,MAX(ext_type) as ext_type,mtl.material_code, mtl.material_name SELECT group_id,
storagevehicle_code,
gp.material_code,pcsn,
qty_unit_id,
qty_unit_name,qty,frozen_qty,remark,
status,ext_code,ext_type,
mater.material_name,mater.material_spec,mater.material_id
FROM md_pb_groupplate gp FROM md_pb_groupplate gp
LEFT JOIN md_me_materialbase mtl ON gp.material_id = mtl.material_id LEFT JOIN md_me_materialbase mater ON mater.material_code = gp.material_code
<where> <where>
gp.status = '01' gp.status = '01' and frozen_qty = 0
<if test="params.material_code != null"> <if test="params.material_code != null">
AND AND
mtl.material_code LIKE CONCAT('%', #{params.material_code}, '%') gp.material_code LIKE CONCAT('%', #{params.material_code}, '%')
</if> </if>
<if test="params.pcsn != null"> <if test="params.pcsn != null">
AND AND
@ -74,7 +80,6 @@
gp.create_time &lt;= #{params.end_time} gp.create_time &lt;= #{params.end_time}
</if> </if>
</where> </where>
GROUP by storagevehicle_code,gp.material_id,pcsn
</select> </select>
<select id="getIODtl" resultType="org.nl.wms.warehouse_management.service.dto.IOStorInvDtlDto"> <select id="getIODtl" resultType="org.nl.wms.warehouse_management.service.dto.IOStorInvDtlDto">

4
nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dto/GroupPlateDto.java

@ -16,7 +16,9 @@ public class GroupPlateDto extends GroupPlate{
/** /**
* 物料编码 * 物料编码
*/ */
private String material_code; private String material_spec;
private String material_id;
/** /**
* 物料名称 * 物料名称

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

@ -27,6 +27,7 @@ import org.nl.wms.basedata_manage.service.dao.BsrealStorattr;
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo; import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo;
import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleinfoMapper; import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleinfoMapper;
import org.nl.wms.basedata_manage.service.dto.StrategyStructParam;
import org.nl.wms.sch_manage.service.dao.SchBasePoint; import org.nl.wms.sch_manage.service.dao.SchBasePoint;
import org.nl.wms.sch_manage.service.dao.SchBaseTask; import org.nl.wms.sch_manage.service.dao.SchBaseTask;
import org.nl.wms.sch_manage.service.dao.mapper.SchBasePointMapper; import org.nl.wms.sch_manage.service.dao.mapper.SchBasePointMapper;
@ -39,19 +40,19 @@ 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;
import org.nl.wms.warehouse_management.service.dao.IOStorInvDis; import org.nl.wms.warehouse_management.service.dao.IOStorInvDis;
import org.nl.wms.warehouse_management.service.dao.IOStorInvDtl; import org.nl.wms.warehouse_management.service.dao.IOStorInvDtl;
import org.nl.wms.warehouse_management.service.dao.mapper.GroupPlateMapper; import org.nl.wms.warehouse_management.service.dao.mapper.*;
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper;
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDtlMapper;
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvMapper;
import org.nl.wms.warehouse_management.service.dto.GroupPlateDto; import org.nl.wms.warehouse_management.service.dto.GroupPlateDto;
import org.nl.wms.warehouse_management.service.dto.IOStorInvDisDto; import org.nl.wms.warehouse_management.service.dto.IOStorInvDisDto;
import org.nl.wms.warehouse_management.service.dto.IOStorInvDtlDto; import org.nl.wms.warehouse_management.service.dto.IOStorInvDtlDto;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -80,14 +81,11 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
@Resource @Resource
private MdPbStoragevehicleinfoMapper mdPbStoragevehicleinfoMapper; private MdPbStoragevehicleinfoMapper mdPbStoragevehicleinfoMapper;
@Resource
private SchBasePointMapper schBasePointMapper;
@Resource @Resource
private IMdPbStoragevehicleextService iMdPbStoragevehicleextService; private IMdPbStoragevehicleextService iMdPbStoragevehicleextService;
@Resource @Resource
private GroupPlateMapper groupPlateMapper; private MdPbGroupplateServiceImpl mdPbGroupplateService;
@Override @Override
public IPage<IOStorInv> pageQuery(Map whereJson, PageQuery page) { public IPage<IOStorInv> pageQuery(Map whereJson, PageQuery page) {
@ -143,7 +141,7 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
String currentUserId = SecurityUtils.getCurrentUserId(); String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName(); String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now(); String now = DateUtil.now();
double total_qty = 0; BigDecimal total_qty = new BigDecimal(BigInteger.ZERO);
JSONObject io_mst = new JSONObject(); JSONObject io_mst = new JSONObject();
String iostorinv_id = IdUtil.getStringId(); String iostorinv_id = IdUtil.getStringId();
String bill_code = CodeUtil.getNewCode("IN_STORE_CODE"); String bill_code = CodeUtil.getNewCode("IN_STORE_CODE");
@ -174,7 +172,6 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
Long deptId = SecurityUtils.getDeptId(); Long deptId = SecurityUtils.getDeptId();
io_mst.put("sysdeptid", deptId + ""); io_mst.put("sysdeptid", deptId + "");
io_mst.put("syscompanyid", deptId + ""); io_mst.put("syscompanyid", deptId + "");
for (int i = 0; i < rows.size(); i++) { for (int i = 0; i < rows.size(); i++) {
HashMap<String, Object> row = rows.get(i); HashMap<String, Object> row = rows.get(i);
JSONObject ioStorInvDtl = new JSONObject(); JSONObject ioStorInvDtl = new JSONObject();
@ -183,6 +180,7 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
ioStorInvDtl.put("iostorinv_id",iostorinv_id); ioStorInvDtl.put("iostorinv_id",iostorinv_id);
ioStorInvDtl.put("seq_no",(i + 1)+""); ioStorInvDtl.put("seq_no",(i + 1)+"");
ioStorInvDtl.put("material_id",row.get("material_id")); ioStorInvDtl.put("material_id",row.get("material_id"));
ioStorInvDtl.put("material_code",row.get("material_code"));
ioStorInvDtl.put("Pcsn",row.get("pcsn")); ioStorInvDtl.put("Pcsn",row.get("pcsn"));
ioStorInvDtl.put("bill_status",IOSEnum.BILL_STATUS.code("生成")); ioStorInvDtl.put("bill_status",IOSEnum.BILL_STATUS.code("生成"));
ioStorInvDtl.put("qty_unit_id",row.get("qty_unit_id")); ioStorInvDtl.put("qty_unit_id",row.get("qty_unit_id"));
@ -190,9 +188,10 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
ioStorInvDtl.put("source_bill_type",row.get("ext_type")); ioStorInvDtl.put("source_bill_type",row.get("ext_type"));
ioStorInvDtl.put("source_bill_code",row.get("ext_code")); ioStorInvDtl.put("source_bill_code",row.get("ext_code"));
ioStorInvDtl.put("assign_qty","0"); ioStorInvDtl.put("assign_qty","0");
ioStorInvDtl.put("unassign_qty",row.get("plan_qty")); ioStorInvDtl.put("unassign_qty",row.get("qty"));
ioStorInvDtl.put("plan_qty",row.get("plan_qty")); ioStorInvDtl.put("plan_qty",row.get("qty"));
total_qty += Double.parseDouble(row.get("qty").toString()); Double qty = new Double(String.valueOf(row.get("qty")));
total_qty = total_qty.add(new BigDecimal(qty));
//判断该载具编号是否已经存在库内 //判断该载具编号是否已经存在库内
Structattr structattr = iStructattrService.getOne(new LambdaQueryWrapper<>(Structattr.class).eq(Structattr::getStoragevehicle_code,row.get("storagevehicle_code"))); Structattr structattr = iStructattrService.getOne(new LambdaQueryWrapper<>(Structattr.class).eq(Structattr::getStoragevehicle_code,row.get("storagevehicle_code")));
@ -208,14 +207,14 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
dis.put("iostorinvdtl_id", ioStorInvDtl.getString("iostorinvdtl_id")); dis.put("iostorinvdtl_id", ioStorInvDtl.getString("iostorinvdtl_id"));
dis.put("seq_no", 1); dis.put("seq_no", 1);
dis.put("material_id", row.get("material_id")); dis.put("material_id", row.get("material_id"));
dis.put("material_code", row.get("material_code"));
dis.put("pcsn", row.get("pcsn")); dis.put("pcsn", row.get("pcsn"));
dis.put("storagevehicle_code", row.get("storagevehicle_code")); dis.put("storagevehicle_code", row.get("storagevehicle_code"));
dis.put("work_status", IOSEnum.INBILL_DIS_STATUS.code("未生成")); dis.put("work_status", IOSEnum.INBILL_DIS_STATUS.code("未生成"));
dis.put("is_issued", BaseDataEnum.IS_YES_NOT.code("否")); dis.put("is_issued", BaseDataEnum.IS_YES_NOT.code("否"));
dis.put("qty_unit_id", row.get("qty_unit_id")); dis.put("qty_unit_id", row.get("qty_unit_id"));
dis.put("qty_unit_name", row.get("qty_unit_name")); dis.put("qty_unit_name", row.get("qty_unit_name"));
dis.put("plan_qty", row.get("plan_qty")); dis.put("plan_qty", row.get("qty"));
ioStorInvDisMapper.insert(dis.toJavaObject(IOStorInvDis.class)); ioStorInvDisMapper.insert(dis.toJavaObject(IOStorInvDis.class));
} }
io_mst.put("total_qty", total_qty); io_mst.put("total_qty", total_qty);
@ -328,47 +327,42 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void divStruct(Map whereJson) { public void divStruct(JSONObject param) {
Assert.noNullElements(new Object[]{param.getString("stor_code"),param.getString("sect_code")},"参数异常");
ArrayList<HashMap> rows = (ArrayList<HashMap>) param.get("tableMater");
JSONObject mst = JSONObject.parseObject(JSON.toJSONString(param));
HashMap<String, String> map = rows.get(0);
//判断该分配明细是否已经分配货位
IOStorInvDis ioStorInvDis = ioStorInvDisMapper.selectOne(new LambdaQueryWrapper<>(IOStorInvDis.class)
.eq(IOStorInvDis::getIostorinvdis_id,map.get("iostorinvdis_id"))
.isNull(IOStorInvDis::getStruct_code));
if (ioStorInvDis ==null){
throw new BadRequestException("当前明细已经分配过库位");
}
String currentUserId = SecurityUtils.getCurrentUserId(); String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName(); String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now(); String now = DateUtil.now();
String sect_id = ""; String sect_id = "";
String sect_code = ""; String sect_code = "";
String sect_name = ""; String sect_name = "";
String struct_id = ""; String struct_id = "";
String struct_code = ""; String struct_code = "";
String struct_name = ""; String struct_name = "";
ArrayList<HashMap> rows = (ArrayList<HashMap>) whereJson.get("tableMater");
JSONObject whereJson2 = JSONObject.parseObject(JSON.toJSONString(whereJson));
HashMap<String, String> map = rows.get(0);
//判断该分配明细是否已经分配货位
IOStorInvDis ioStorInvDis = ioStorInvDisMapper.selectOne(new LambdaQueryWrapper<>(IOStorInvDis.class)
.eq(IOStorInvDis::getIostorinvdis_id,map.get("iostorinvdis_id"))
.and(wrapper-> wrapper.isNull(IOStorInvDis::getStruct_code).or().eq(IOStorInvDis::getStruct_code,"")));
if (ObjectUtil.isEmpty(ioStorInvDis)){
throw new BadRequestException("该明细已经分配过货位,无法继续分配!");
}
Boolean checked = whereJson2.getBoolean("checked");
//是否自动分配仓位 //是否自动分配仓位
Boolean checked = mst.getBoolean("checked");
if (ObjectUtil.isNotEmpty(checked) && checked) { if (ObjectUtil.isNotEmpty(checked) && checked) {
JSONObject jo_form = new JSONObject(); List<Structattr> structattrs = iStructattrService.inBoundSectDiv(
Structattr struct = new Structattr(); StrategyStructParam.builder()
if (whereJson.containsKey("sect_id")) { .sect_code(param.getString("sect_code"))
jo_form.put("sect_id", whereJson.get("sect_id")); .stor_code(param.getString("stor_code"))
jo_form.put("storagevehicle_code", map.get("storagevehicle_code")); .material_code(map.get("material_code"))
struct = this.autoDis(jo_form); .qty(new BigDecimal(String.valueOf(map.get("plan_qty"))))
} else { .pcsn(map.get("pcsn"))
throw new BadRequestException("请选择需要分配的库区!"); .build());
} if (CollectionUtils.isEmpty(structattrs)){
throw new BadRequestException("无可用货位");
}
if (ObjectUtil.isEmpty(struct)) { Structattr struct = structattrs.get(0);
throw new BadRequestException("未查询到适用仓位!");
}
sect_id = struct.getSect_id(); sect_id = struct.getSect_id();
sect_code = struct.getSect_code(); sect_code = struct.getSect_code();
sect_name = struct.getSect_name(); sect_name = struct.getSect_name();
@ -376,7 +370,6 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
struct_code = struct.getStruct_code(); struct_code = struct.getStruct_code();
struct_name = struct.getStruct_name(); struct_name = struct.getStruct_name();
} else { } else {
Structattr structattr = iStructattrService.findById(map.get("struct_id")); Structattr structattr = iStructattrService.findById(map.get("struct_id"));
MdPbStoragevehicleinfo mdPbStoragevehicleinfo = mdPbStoragevehicleinfoMapper.selectOne(new LambdaQueryWrapper<>(MdPbStoragevehicleinfo.class) MdPbStoragevehicleinfo mdPbStoragevehicleinfo = mdPbStoragevehicleinfoMapper.selectOne(new LambdaQueryWrapper<>(MdPbStoragevehicleinfo.class)
.eq(MdPbStoragevehicleinfo::getStoragevehicle_code,map.get("storagevehicle_code")) .eq(MdPbStoragevehicleinfo::getStoragevehicle_code,map.get("storagevehicle_code"))
@ -401,7 +394,6 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
dis_map.put("struct_id", struct_id); dis_map.put("struct_id", struct_id);
dis_map.put("struct_code", struct_code); dis_map.put("struct_code", struct_code);
dis_map.put("struct_name", struct_name); dis_map.put("struct_name", struct_name);
//锁定货位 //锁定货位
IOStorInv ioStorInv = ioStorInvMapper.selectById(map.get("iostorinv_id")); IOStorInv ioStorInv = ioStorInvMapper.selectById(map.get("iostorinv_id"));
JSONObject lock_map = new JSONObject(); JSONObject lock_map = new JSONObject();
@ -411,7 +403,11 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
lock_map.put("inv_type", ioStorInv.getBill_type()); lock_map.put("inv_type", ioStorInv.getBill_type());
lock_map.put("lock_type", IOSEnum.LOCK_TYPE.code("入库锁")); lock_map.put("lock_type", IOSEnum.LOCK_TYPE.code("入库锁"));
iStructattrService.updateStatusByCode("0",lock_map); iStructattrService.updateStatusByCode("0",lock_map);
//更新组盘表状态
mdPbGroupplateService.update(new LambdaUpdateWrapper<GroupPlate>()
.set(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("入库"))
.eq(GroupPlate::getStoragevehicle_code,map.get("storagevehicle_code"))
.eq(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("组盘")));
// 更新分配明细表 // 更新分配明细表
ioStorInvDisMapper.update(dis_map.toJavaObject(IOStorInvDis.class),new LambdaUpdateWrapper<>(IOStorInvDis.class) ioStorInvDisMapper.update(dis_map.toJavaObject(IOStorInvDis.class),new LambdaUpdateWrapper<>(IOStorInvDis.class)
.set(IOStorInvDis::getSect_id,dis_map.getString("sect_id")) .set(IOStorInvDis::getSect_id,dis_map.getString("sect_id"))
@ -422,7 +418,6 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
.set(IOStorInvDis::getStruct_name,dis_map.getString("struct_name")) .set(IOStorInvDis::getStruct_name,dis_map.getString("struct_name"))
.eq(IOStorInvDis::getIostorinvdis_id,map.get("iostorinvdis_id")) .eq(IOStorInvDis::getIostorinvdis_id,map.get("iostorinvdis_id"))
); );
//维护单据明细表里 分配数量 //维护单据明细表里 分配数量
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put("iostorinvdtl_id",map.get("iostorinvdtl_id")); jsonObject.put("iostorinvdtl_id",map.get("iostorinvdtl_id"));
@ -430,12 +425,10 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
jsonObject.put("assign_qty",map.get("plan_qty")); jsonObject.put("assign_qty",map.get("plan_qty"));
jsonObject.put("unassign_qty","0"); jsonObject.put("unassign_qty","0");
ioStorInvDtlMapper.updateById(jsonObject.toJavaObject(IOStorInvDtl.class)); ioStorInvDtlMapper.updateById(jsonObject.toJavaObject(IOStorInvDtl.class));
//根据单据标识判断分配明细是否都已经分配完成 //根据单据标识判断分配明细是否都已经分配完成
int disCount = ioStorInvDisMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDis.class) int disCount = ioStorInvDisMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDis.class)
.eq(IOStorInvDis::getIostorinv_id,map.get("iostorinv_id")) .eq(IOStorInvDis::getIostorinv_id,map.get("iostorinv_id"))
.and(wrapper -> wrapper.isNull(IOStorInvDis::getStruct_code).or().eq(IOStorInvDis::getStruct_code,""))); .and(wrapper -> wrapper.isNull(IOStorInvDis::getStruct_code).or().eq(IOStorInvDis::getStruct_code,"")));
// 根据分配货位情况 更新主表单据状态 // 根据分配货位情况 更新主表单据状态
IOStorInv ios = new IOStorInv(); IOStorInv ios = new IOStorInv();
ios.setIostorinv_id(map.get("iostorinv_id")); ios.setIostorinv_id(map.get("iostorinv_id"));
@ -599,14 +592,13 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
.eq(IOStorInvDtl::getIostorinvdtl_id,ioStorInvDis.getIostorinvdtl_id()) .eq(IOStorInvDtl::getIostorinvdtl_id,ioStorInvDis.getIostorinvdtl_id())
.ne(IOStorInvDtl::getBill_status,IOSEnum.BILL_STATUS.code("完成")) .ne(IOStorInvDtl::getBill_status,IOSEnum.BILL_STATUS.code("完成"))
); );
// //更新组盘记录表
//更新组盘记录表 // mdPbGroupplateService.update(new GroupPlate(),new LambdaUpdateWrapper<>(GroupPlate.class)
groupPlateMapper.update(new GroupPlate(),new LambdaUpdateWrapper<>(GroupPlate.class) // .set(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("入库"))
.set(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("入库")) // .eq(GroupPlate::getPcsn,ioStorInvDis.getPcsn())
.eq(GroupPlate::getPcsn,ioStorInvDis.getPcsn()) // .eq(GroupPlate::getMaterial_code,ioStorInvDis.getMaterial_code())
.eq(GroupPlate::getMaterial_code,ioStorInvDis.getMaterial_code()) // .eq(GroupPlate::getStoragevehicle_code,ioStorInvDis.getStoragevehicle_code())
.eq(GroupPlate::getStoragevehicle_code,ioStorInvDis.getStoragevehicle_code()) // );
);
} }
//更新主表状态 //更新主表状态
@ -663,15 +655,6 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty()); jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty());
updateIvtList.add(jsonIvt); updateIvtList.add(jsonIvt);
iMdPbStoragevehicleextService.updateIvt(updateIvtList); iMdPbStoragevehicleextService.updateIvt(updateIvtList);
//更新组盘记录表
groupPlateMapper.update(new GroupPlate(),new LambdaUpdateWrapper<>(GroupPlate.class)
.set(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("入库"))
.eq(GroupPlate::getPcsn,ioStorInvDis.getPcsn())
.eq(GroupPlate::getMaterial_code,ioStorInvDis.getMaterial_code())
.eq(GroupPlate::getStoragevehicle_code,ioStorInvDis.getStoragevehicle_code())
);
// 查询该明细下是否还有未完成的分配明细 // 查询该明细下是否还有未完成的分配明细
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())

5
nladmin-ui/src/utils/request.js

@ -49,7 +49,7 @@ service.interceptors.response.use(
} else { } else {
let code = 0 let code = 0
try { try {
code = error.response.data.code code = error.response.status
} catch (e) { } catch (e) {
if (error.toString().indexOf('Error: timeout') !== -1) { if (error.toString().indexOf('Error: timeout') !== -1) {
Notification.error({ Notification.error({
@ -59,7 +59,6 @@ service.interceptors.response.use(
return Promise.reject(error) return Promise.reject(error)
} }
} }
console.log(code)
if (code) { if (code) {
if (code === 401) { if (code === 401) {
store.dispatch('LogOut').then(() => { store.dispatch('LogOut').then(() => {
@ -70,7 +69,7 @@ service.interceptors.response.use(
} else if (code === 403) { } else if (code === 403) {
router.push({ path: '/401' }) router.push({ path: '/401' })
} else { } else {
const errorMsg = error.response.data.msg const errorMsg = error.response.data.message
if (errorMsg !== undefined) { if (errorMsg !== undefined) {
Notification.error({ Notification.error({
title: errorMsg, title: errorMsg,

12
nladmin-ui/src/views/wms/st/inbill/AddDialog.vue

@ -117,7 +117,7 @@
size="mini" size="mini"
@click="insertEvent()" @click="insertEvent()"
> >
添加箱号物料 添加组盘物料
</el-button> </el-button>
</span> </span>
@ -134,8 +134,10 @@
<el-table-column show-overflow-tooltip width="150" prop="pcsn" label="批次号" /> <el-table-column show-overflow-tooltip width="150" prop="pcsn" label="批次号" />
<el-table-column show-overflow-tooltip width="150" prop="material_code" label="物料编码" /> <el-table-column show-overflow-tooltip width="150" prop="material_code" label="物料编码" />
<el-table-column show-overflow-tooltip width="150" prop="material_name" label="物料名称" /> <el-table-column show-overflow-tooltip width="150" prop="material_name" label="物料名称" />
<el-table-column show-overflow-tooltip width="170" prop="plan_qty" label="数量" /> <el-table-column show-overflow-tooltip width="170" prop="qty" label="数量" />
<el-table-column show-overflow-tooltip width="170" prop="qty_unit_name" label="计量单位名称" /> <el-table-column show-overflow-tooltip width="170" prop="qty_unit_name" label="计量单位名称" />
<el-table-column show-overflow-tooltip width="150" prop="ext_code" label="源单号" />
<el-table-column show-overflow-tooltip width="150" prop="ext_type" label="源单类型" />
<el-table-column v-if="crud.status.cu > 0" align="center" label="操作" width="120" fixed="right"> <el-table-column v-if="crud.status.cu > 0" align="center" label="操作" width="120" fixed="right">
<template scope="scope"> <template scope="scope">
<el-button <el-button
@ -287,7 +289,7 @@ export default {
this.crud.notify('请选择业务类型!', CRUD.NOTIFICATION_TYPE.INFO) this.crud.notify('请选择业务类型!', CRUD.NOTIFICATION_TYPE.INFO)
return return
} }
this.form.tableData.push({ quality_scode: '01', is_active: '1', ivt_level: '01', plan_qty: '0' }) this.form.tableData.push({ quality_scode: '01', is_active: '1', ivt_level: '01', qty: '0' })
this.form.detail_count = this.form.tableData.length this.form.detail_count = this.form.tableData.length
}, },
deleteRow(index, rows) { deleteRow(index, rows) {
@ -298,7 +300,7 @@ export default {
if (pcsn === obj.pcsn) { if (pcsn === obj.pcsn) {
const index = rows.indexOf(obj) const index = rows.indexOf(obj)
if (index > -1) { // if (index > -1) { //
this.form.total_qty = parseFloat(this.form.total_qty) - parseFloat(rows[index].plan_qty) this.form.total_qty = parseFloat(this.form.total_qty) - parseFloat(rows[index].qty)
rows.splice(index, 1) rows.splice(index, 1)
this.form.detail_count = this.form.tableData.length this.form.detail_count = this.form.tableData.length
} }
@ -315,7 +317,7 @@ export default {
} }
}) })
if (same_mater) { if (same_mater) {
this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(item.plan_qty) this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(item.qty)
this.form.tableData.splice(-1, 0, item) this.form.tableData.splice(-1, 0, item)
} }
}) })

67
nladmin-ui/src/views/wms/st/inbill/DivDialog.vue

@ -14,18 +14,18 @@
<span class="el-dialog__title2">入库分配</span> <span class="el-dialog__title2">入库分配</span>
<span class="crud-opts-right2"> <span class="crud-opts-right2">
<!--左侧插槽--> <!--左侧插槽-->
<!-- <slot name="left">--> <!-- <slot name="left">-->
<!-- <el-button--> <!-- <el-button-->
<!-- :loading="allDivBtn"--> <!-- :loading="allDivBtn"-->
<!-- class="filter-item"--> <!-- class="filter-item"-->
<!-- type="primary"--> <!-- type="primary"-->
<!-- icon="el-icon-plus"--> <!-- icon="el-icon-plus"-->
<!-- size="mini"--> <!-- size="mini"-->
<!-- @click="allDivStruct()"--> <!-- @click="allDivStruct()"-->
<!-- >--> <!-- >-->
<!-- 全部分配--> <!-- 全部分配-->
<!-- </el-button>--> <!-- </el-button>-->
<!-- </slot>--> <!-- </slot>-->
<el-button slot="left" type="info" @click="dialogVisible = false">关闭</el-button> <el-button slot="left" type="info" @click="dialogVisible = false">关闭</el-button>
</span> </span>
</div> </div>
@ -69,10 +69,12 @@
show-overflow-tooltip show-overflow-tooltip
prop="plan_qty" prop="plan_qty"
:formatter="crud.formatNum3" :formatter="crud.formatNum3"
label="量" label="量"
align="center" align="center"
/> />
<el-table-column show-overflow-tooltip prop="qty_unit_name" label="单位" align="center" /> <el-table-column show-overflow-tooltip prop="qty_unit_name" label="单位" align="center" />
<el-table-column show-overflow-tooltip prop="source_bill_code" label="源单号" align="center" />
<el-table-column show-overflow-tooltip prop="source_bill_type" label="源单类型" align="center" />
</el-table> </el-table>
</el-card> </el-card>
<el-card class="box-card" shadow="never" :body-style="{padding:'20px 20px 0 20px'}"> <el-card class="box-card" shadow="never" :body-style="{padding:'20px 20px 0 20px'}">
@ -222,8 +224,8 @@ export default {
data() { data() {
return { return {
dialogVisible: false, dialogVisible: false,
stor_id: '', stor_code: '',
sect_id: '', sect_code: '',
sectProp: null, sectProp: null,
bucketProp: {}, bucketProp: {},
structShow: false, structShow: false,
@ -314,16 +316,16 @@ export default {
sectQueryChange(val) { sectQueryChange(val) {
this.sectProp = val this.sectProp = val
if (val.length === 1) { if (val.length === 1) {
this.stor_id = val[0] this.stor_code = val[0]
this.sect_id = '' this.sect_code = ''
} }
if (val.length === 0) { if (val.length === 0) {
this.sect_id = '' this.sect_code = ''
this.stor_id = '' this.stor_code = ''
} }
if (val.length === 2) { if (val.length === 2) {
this.stor_id = val[0] this.stor_code = val[0]
this.sect_id = val[1] this.sect_code = val[1]
} }
}, },
tableChanged(row) { tableChanged(row) {
@ -363,23 +365,6 @@ export default {
}) })
}) })
}, },
// allDivStruct() {
// if (!this.sect_id) {
// this.crud.notify('', CRUD.NOTIFICATION_TYPE.INFO)
// return
// }
// this.allDivBtn = true
// const data = {}
// data.sect_id = this.sect_id
// data.iostorinv_id = this.openParam[0].iostorinv_id
// crudRawAssist.allDivStruct(data).then(res => {
// crudRawAssist.getIODtl({ 'bill_code': this.openParam[0].bill_code, 'open_flag': '1' }).then(res => {
// this.openParam = res
// })
// }).finally(() => {
// this.allDivBtn = false
// })
// },
divStruct() { divStruct() {
if (this.form.tableMater.length === 0) { if (this.form.tableMater.length === 0) {
this.crud.notify('请先选择一条明细!', CRUD.NOTIFICATION_TYPE.INFO) this.crud.notify('请先选择一条明细!', CRUD.NOTIFICATION_TYPE.INFO)
@ -387,13 +372,13 @@ export default {
} }
// //
if (this.form.checked) { if (this.form.checked) {
if (!this.sect_id) { if (!this.sect_code) {
this.crud.notify('请先选择区域!', CRUD.NOTIFICATION_TYPE.INFO) this.crud.notify('请先选择区域!', CRUD.NOTIFICATION_TYPE.INFO)
return return
} }
this.divBtn = true this.divBtn = true
this.form.sect_id = this.sect_id this.form.sect_code = this.sect_code
this.form.stor_id = this.stor_id this.form.stor_code = this.stor_code
crudRawAssist.divStruct(this.form).then(res => { crudRawAssist.divStruct(this.form).then(res => {
crudRawAssist.getIODtl({ 'bill_code': this.form.dtl_row.bill_code, 'open_flag': '1' }).then(res => { crudRawAssist.getIODtl({ 'bill_code': this.form.dtl_row.bill_code, 'open_flag': '1' }).then(res => {
this.openParam = res this.openParam = res

4
nladmin-ui/src/views/wms/st/inbill/ViewDialog.vue

@ -113,8 +113,8 @@
<!-- <el-table-column prop="sap_pcsn" label="SAP批次号" width="150" align="center" />--> <!-- <el-table-column prop="sap_pcsn" label="SAP批次号" width="150" align="center" />-->
<el-table-column prop="plan_qty" :formatter="crud.formatNum3" label="重量" align="center" /> <el-table-column prop="plan_qty" :formatter="crud.formatNum3" label="重量" align="center" />
<el-table-column prop="qty_unit_name" label="单位" align="center" /> <el-table-column prop="qty_unit_name" label="单位" align="center" />
<!-- <el-table-column prop="source_bill_type" label="源单类型" align="center" width="130px" :formatter="invtypeFormat" />--> <el-table-column prop="source_bill_type" label="源单类型" align="center" width="130px" :formatter="invtypeFormat" />
<!-- <el-table-column prop="source_bill_code" label="源单号" align="center" width="130px" />--> <el-table-column prop="source_bill_code" label="源单号" align="center" width="130px" />
<el-table-column show-overflow-tooltip prop="remark" label="明细备注" align="center" /> <el-table-column show-overflow-tooltip prop="remark" label="明细备注" align="center" />
</el-table> </el-table>
</el-card> </el-card>

Loading…
Cancel
Save