Browse Source

测试提交

master
songguoqiang 7 months ago
parent
commit
b545e94f0c
  1. 4
      win-module-eam/win-module-eam-api/src/main/java/com/win/module/eam/enums/ErrorCodeConstants.java
  2. 2
      win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/controller/itemaccounts/ItemAccountsController.java
  3. 2
      win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/controller/iteminlocation/ItemInLocationController.java
  4. 4
      win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/controller/iteminlocation/vo/ItemInLocationExcelVO.java
  5. 40
      win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/dal/mysql/itemaccounts/ItemAccountsMapper.java
  6. 78
      win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/service/itemaccounts/ItemAccountsServiceImpl.java
  7. 11
      win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/service/transaction/TransactionServiceImpl.java

4
win-module-eam/win-module-eam-api/src/main/java/com/win/module/eam/enums/ErrorCodeConstants.java

@ -130,6 +130,8 @@ public interface ErrorCodeConstants {
ErrorCode ITEM_IS_HAVE= new ErrorCode(1_000_020_045, "该备件已存在!"); ErrorCode ITEM_IS_HAVE= new ErrorCode(1_000_020_045, "该备件已存在!");
ErrorCode ProducePlan_NOT_EXISTS= new ErrorCode(1_000_020_046, "生产计划不存在!"); ErrorCode ProducePlan_NOT_EXISTS= new ErrorCode(1_000_020_046, "生产计划不存在!");
ErrorCode ITEM_CAN_NOT_DELETE= new ErrorCode(1_000_020_045, "该备件已存在于备件台账,不允许删除!"); ErrorCode ITEM_CAN_NOT_DELETE= new ErrorCode(1_000_020_045, "该备件已存在于备件台账,不允许删除!");
ErrorCode LOCATION_COUNTS_EXISTS= new ErrorCode(1_000_020_045, "该库存数不为0,不能更换库位!");
ErrorCode MOLD_ACCOUNT_EXISTS = new ErrorCode(1_000_020_050, "该编号模具已存在!"); ErrorCode MOLD_ACCOUNT_EXISTS = new ErrorCode(1_000_020_050, "该编号模具已存在!");
ErrorCode FALSE_LOCATION_ACCOUNT_EXISTS = new ErrorCode(1_000_020_051, "该备件有账外库且库存大于0,应该优先出账外库"); ErrorCode FALSE_LOCATION_ACCOUNT_EXISTS = new ErrorCode(1_000_020_051, "该备件有账外库且库存大于0,应该优先出账外库");
ErrorCode OUT_BIG_APPLY = new ErrorCode(1_000_020_052, "出库数量大于申领数量"); ErrorCode OUT_BIG_APPLY = new ErrorCode(1_000_020_052, "出库数量大于申领数量");
@ -163,5 +165,7 @@ public interface ErrorCodeConstants {
//备件入库记录 //备件入库记录
ErrorCode LOCATION_EXISTS = new ErrorCode(1_000_020_021, "该库位已与备件绑定不可重复绑定"); ErrorCode LOCATION_EXISTS = new ErrorCode(1_000_020_021, "该库位已与备件绑定不可重复绑定");
ErrorCode ITEM_EXISTS = new ErrorCode(1_000_020_021, "该备件已绑定不可重复绑定");
} }

2
win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/controller/itemaccounts/ItemAccountsController.java

@ -271,7 +271,7 @@ public class ItemAccountsController {
@GetMapping("/getByItemNumber") @GetMapping("/getByItemNumber")
@Operation(summary = "根据备件编码查询库位信息") @Operation(summary = "根据备件编码查询库位信息")
// @PreAuthorize("@ss.hasPermission('basic:item:query')") // @PreAuthorize("@ss.hasPermission('basic:item:query')")
public CommonResult<ItemAccountsRespVO> scanCodeByNumber(@RequestParam("itemNumber") String itemNumber) { public CommonResult<ItemAccountsRespVO> getByItemNumber(@RequestParam("itemNumber") String itemNumber) {
ItemAccountsRespVO convert = ItemAccountsConvert.INSTANCE.convert(itemAccountsService.getByItemNumber(itemNumber)); ItemAccountsRespVO convert = ItemAccountsConvert.INSTANCE.convert(itemAccountsService.getByItemNumber(itemNumber));
if(convert!=null){ if(convert!=null){
ItemDO itemDO = itemService.getByNumber(itemNumber); ItemDO itemDO = itemService.getByNumber(itemNumber);

2
win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/controller/iteminlocation/ItemInLocationController.java

@ -121,7 +121,7 @@ public class ItemInLocationController {
LocationDO locationDO = locationService.getByNumber(vo.getLocationNumber()); LocationDO locationDO = locationService.getByNumber(vo.getLocationNumber());
vo.setLocationName(locationDO.getName()); vo.setLocationName(locationDO.getName());
} }
ExcelUtils.write(response, "备件入库记录.xls", "数据", ItemInLocationExcelVO.class, datas); ExcelUtils.write(response, "备件归还记录.xls", "数据", ItemInLocationExcelVO.class, datas);
} }
@GetMapping("/get-import-template") @GetMapping("/get-import-template")

4
win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/controller/iteminlocation/vo/ItemInLocationExcelVO.java

@ -42,8 +42,8 @@ public class ItemInLocationExcelVO {
@ExcelProperty("数量") @ExcelProperty("数量")
private BigDecimal qty; private BigDecimal qty;
@ExcelProperty("领用人") @ExcelProperty("归还人")
private String receiver; private String returner;
@ExcelProperty("创建时间") @ExcelProperty("创建时间")
private LocalDateTime createTime; private LocalDateTime createTime;

40
win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/dal/mysql/itemaccounts/ItemAccountsMapper.java

@ -69,11 +69,11 @@ public interface ItemAccountsMapper extends BaseMapperX<ItemAccountsDO> {
ItemAccountsDO newLocation = getByLocationAndType(param.getLocationNumber(), ItemAccountStatusEnum.NEW.getCode());//账内库库存 ItemAccountsDO newLocation = getByLocationAndType(param.getLocationNumber(), ItemAccountStatusEnum.NEW.getCode());//账内库库存
newQty = newLocation == null ? BigDecimal.ZERO : newLocation.getQty(); newQty = newLocation == null ? BigDecimal.ZERO : newLocation.getQty();
if (outQty.compareTo(BigDecimal.ZERO) > 0) {//说明账外库存在且数据不为0 需要先把账外库清空 if (outQty.compareTo(BigDecimal.ZERO) > 0) {//说明账外库存在且数据不为0 需要先把账外库清空
outLocation.setQty(outQty); outLocation.setQty(BigDecimal.ZERO);
result = this.updateById(outLocation); result = this.updateById(outLocation);
//添加库存事务 //添加库存事务
TransactionDO transactionDO = new TransactionDO(); TransactionDO transactionDO = new TransactionDO();
transactionDO.setQty(outLocation.getQty()); transactionDO.setQty(outQty);
transactionDO.setType(outLocation.getType()); transactionDO.setType(outLocation.getType());
list.add(transactionDO); list.add(transactionDO);
BigDecimal subtractOutQty = qtyNew.subtract(outQty);//差几个零件 BigDecimal subtractOutQty = qtyNew.subtract(outQty);//差几个零件
@ -83,21 +83,26 @@ public interface ItemAccountsMapper extends BaseMapperX<ItemAccountsDO> {
result = this.updateById(inLocation); result = this.updateById(inLocation);
//添加库存事务 //添加库存事务
TransactionDO transactionDO1 = new TransactionDO(); TransactionDO transactionDO1 = new TransactionDO();
transactionDO1.setQty(inLocation.getQty()); transactionDO1.setQty(subtractOutQty);
transactionDO1.setType(inLocation.getType()); transactionDO1.setType(inLocation.getType());
list.add(transactionDO1); list.add(transactionDO1);
} }
if (inQty.compareTo(BigDecimal.ZERO) > 0 && inQty.compareTo(subtractOutQty) < 0) {//账内库存在且不足差额 if (inQty.compareTo(BigDecimal.ZERO) > 0 && inQty.compareTo(subtractOutQty) < 0) {//账内库存在且不足差额需要清空账内
inLocation.setQty(inQty); inLocation.setQty(BigDecimal.ZERO);
result = this.updateById(inLocation); result = this.updateById(inLocation);
//添加库存事务
TransactionDO transactionDO0 = new TransactionDO();
transactionDO0.setQty(inQty);
transactionDO0.setType(inLocation.getType());
list.add(transactionDO0);
BigDecimal subtractInQty = subtractOutQty.subtract(inQty);//减去之后的数量 BigDecimal subtractInQty = subtractOutQty.subtract(inQty);//减去之后的数量
if (inQty.compareTo(BigDecimal.ZERO) > 0 && inQty.compareTo(subtractInQty) >= 0) {//新到货存在且足够差额 if (inQty.compareTo(BigDecimal.ZERO) > 0 && inQty.compareTo(subtractInQty) >= 0) {//新到货存在且足够差额
BigDecimal subtractNewQty = newQty.subtract(subtractInQty);//减去之后的数量 BigDecimal subtractNewQty = newQty.subtract(subtractInQty);//减去之后的数量
newLocation.setQty(subtractNewQty); newLocation.setQty(subtractNewQty);
//添加库存事务
result = this.updateById(newLocation); result = this.updateById(newLocation);
//添加库存事务
TransactionDO transactionDO2 = new TransactionDO(); TransactionDO transactionDO2 = new TransactionDO();
transactionDO2.setQty(newLocation.getQty()); transactionDO2.setQty(subtractInQty);
transactionDO2.setType(newLocation.getType()); transactionDO2.setType(newLocation.getType());
list.add(transactionDO2); list.add(transactionDO2);
} else { } else {
@ -111,7 +116,7 @@ public interface ItemAccountsMapper extends BaseMapperX<ItemAccountsDO> {
result = this.updateById(newLocation); result = this.updateById(newLocation);
//添加库存事务 //添加库存事务
TransactionDO transactionDO3 = new TransactionDO(); TransactionDO transactionDO3 = new TransactionDO();
transactionDO3.setQty(newLocation.getQty()); transactionDO3.setQty(subtractOutQty);
transactionDO3.setType(newLocation.getType()); transactionDO3.setType(newLocation.getType());
list.add(transactionDO3); list.add(transactionDO3);
} else { } else {
@ -126,16 +131,16 @@ public interface ItemAccountsMapper extends BaseMapperX<ItemAccountsDO> {
result = this.updateById(inLocation); result = this.updateById(inLocation);
//添加库存事务 //添加库存事务
TransactionDO transactionDO4 = new TransactionDO(); TransactionDO transactionDO4 = new TransactionDO();
transactionDO4.setQty(inLocation.getQty()); transactionDO4.setQty(qtyNew);
transactionDO4.setType(inLocation.getType()); transactionDO4.setType(inLocation.getType());
list.add(transactionDO4); list.add(transactionDO4);
} }
if (inQty.compareTo(BigDecimal.ZERO) > 0 && inQty.compareTo(qtyNew) < 0) {//账内库存在且不足差额 if (inQty.compareTo(BigDecimal.ZERO) > 0 && inQty.compareTo(qtyNew) < 0) {//账内库存在且不足差额清空
inLocation.setQty(inQty); inLocation.setQty(BigDecimal.ZERO);
result = this.updateById(inLocation); result = this.updateById(inLocation);
//添加库存事务 //添加库存事务
TransactionDO transactionDO5 = new TransactionDO(); TransactionDO transactionDO5 = new TransactionDO();
transactionDO5.setQty(inLocation.getQty()); transactionDO5.setQty(inQty);
transactionDO5.setType(inLocation.getType()); transactionDO5.setType(inLocation.getType());
list.add(transactionDO5); list.add(transactionDO5);
BigDecimal subtractInQty = qtyNew.subtract(inQty);//减去之后的数量 BigDecimal subtractInQty = qtyNew.subtract(inQty);//减去之后的数量
@ -145,7 +150,7 @@ public interface ItemAccountsMapper extends BaseMapperX<ItemAccountsDO> {
result = this.updateById(newLocation); result = this.updateById(newLocation);
//添加库存事务 //添加库存事务
TransactionDO transactionDO6 = new TransactionDO(); TransactionDO transactionDO6 = new TransactionDO();
transactionDO6.setQty(newLocation.getQty()); transactionDO6.setQty(subtractInQty);
transactionDO6.setType(newLocation.getType()); transactionDO6.setType(newLocation.getType());
list.add(transactionDO6); list.add(transactionDO6);
} else { } else {
@ -159,7 +164,7 @@ public interface ItemAccountsMapper extends BaseMapperX<ItemAccountsDO> {
result = this.updateById(newLocation); result = this.updateById(newLocation);
//添加库存事务 //添加库存事务
TransactionDO transactionDO7 = new TransactionDO(); TransactionDO transactionDO7 = new TransactionDO();
transactionDO7.setQty(newLocation.getQty()); transactionDO7.setQty(qtyNew);
transactionDO7.setType(newLocation.getType()); transactionDO7.setType(newLocation.getType());
list.add(transactionDO7); list.add(transactionDO7);
} else { } else {
@ -173,7 +178,7 @@ public interface ItemAccountsMapper extends BaseMapperX<ItemAccountsDO> {
result = this.updateById(outLocation); result = this.updateById(outLocation);
//添加库存事务 //添加库存事务
TransactionDO transactionDO8 = new TransactionDO(); TransactionDO transactionDO8 = new TransactionDO();
transactionDO8.setQty(outLocation.getQty()); transactionDO8.setQty(qtyNew);
transactionDO8.setType(outLocation.getType()); transactionDO8.setType(outLocation.getType());
list.add(transactionDO8); list.add(transactionDO8);
} }
@ -189,8 +194,9 @@ public interface ItemAccountsMapper extends BaseMapperX<ItemAccountsDO> {
BigDecimal subtractNewQty = itemAccountsDO.getQty().subtract(qtyNew);//减去之后的数量 BigDecimal subtractNewQty = itemAccountsDO.getQty().subtract(qtyNew);//减去之后的数量
itemAccountsDO.setQty(subtractNewQty); itemAccountsDO.setQty(subtractNewQty);
result = this.updateById(itemAccountsDO); result = this.updateById(itemAccountsDO);
//事务记录
TransactionDO transactionDO = new TransactionDO(); TransactionDO transactionDO = new TransactionDO();
transactionDO.setQty(subtractNewQty); transactionDO.setQty(qtyNew);
transactionDO.setType(itemAccountsDO.getType()); transactionDO.setType(itemAccountsDO.getType());
list.add(transactionDO); list.add(transactionDO);
} }
@ -204,6 +210,7 @@ public interface ItemAccountsMapper extends BaseMapperX<ItemAccountsDO> {
if (itemAccountsDO == null) {//不存在新增 if (itemAccountsDO == null) {//不存在新增
itemAccountsDO = ItemAccountsConvert.INSTANCE.convert(param); itemAccountsDO = ItemAccountsConvert.INSTANCE.convert(param);
result = this.insert(itemAccountsDO); result = this.insert(itemAccountsDO);
//库存事务
TransactionDO transactionDO = new TransactionDO(); TransactionDO transactionDO = new TransactionDO();
transactionDO.setQty(itemAccountsDO.getQty()); transactionDO.setQty(itemAccountsDO.getQty());
transactionDO.setType(itemAccountsDO.getType()); transactionDO.setType(itemAccountsDO.getType());
@ -212,6 +219,7 @@ public interface ItemAccountsMapper extends BaseMapperX<ItemAccountsDO> {
BigDecimal qty = itemAccountsDO.getQty(); BigDecimal qty = itemAccountsDO.getQty();
BigDecimal add = qty.add(param.getQty()); BigDecimal add = qty.add(param.getQty());
itemAccountsDO.setQty(add); itemAccountsDO.setQty(add);
//库存事务
result = updateById(itemAccountsDO); result = updateById(itemAccountsDO);
TransactionDO transactionDO = new TransactionDO(); TransactionDO transactionDO = new TransactionDO();
transactionDO.setQty(itemAccountsDO.getQty()); transactionDO.setQty(itemAccountsDO.getQty());

78
win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/service/itemaccounts/ItemAccountsServiceImpl.java

@ -77,6 +77,8 @@ public class ItemAccountsServiceImpl implements ItemAccountsService {
validate(createReqVO.getItemNumber(),createReqVO.getLocationNumber());//校验库位是否被使用 validate(createReqVO.getItemNumber(),createReqVO.getLocationNumber());//校验库位是否被使用
long id = 0; long id = 0;
List<TransactionCreateReqVO> list = new ArrayList<>(); List<TransactionCreateReqVO> list = new ArrayList<>();
validate(createReqVO.getItemNumber(), createReqVO.getLocationNumber());//校验非当前备件,库位相同是否存在存在即提醒
validate1(createReqVO.getItemNumber(), createReqVO.getLocationNumber());//校验当前备件,非库位是否存在存在即提醒
//账内校验 //账内校验
ItemAccountsDO itemAccountsDO = validateItemAndTypeAndLocation(createReqVO.getItemNumber(), createReqVO.getType(), createReqVO.getLocationNumber()); ItemAccountsDO itemAccountsDO = validateItemAndTypeAndLocation(createReqVO.getItemNumber(), createReqVO.getType(), createReqVO.getLocationNumber());
@ -172,7 +174,7 @@ public class ItemAccountsServiceImpl implements ItemAccountsService {
//int i = itemAccountsMapper.updateById(itemAccountsDO1); //int i = itemAccountsMapper.updateById(itemAccountsDO1);
//记录新到货转账内 //记录新到货转账内
//id = itemAccountsDO1.getId(); //id = itemAccountsDO1.getId();
itemNewTurnInDO.setType("3"); itemNewTurnInDO.setType("2");
itemNewTurnInDO.setItemNumber(createReqVO.getItemNumber()); itemNewTurnInDO.setItemNumber(createReqVO.getItemNumber());
itemNewTurnInDO.setAreaNumber(createReqVO.getAreaNumber()); itemNewTurnInDO.setAreaNumber(createReqVO.getAreaNumber());
itemNewTurnInDO.setLocationNumber(createReqVO.getLocationNumber()); itemNewTurnInDO.setLocationNumber(createReqVO.getLocationNumber());
@ -206,6 +208,20 @@ public class ItemAccountsServiceImpl implements ItemAccountsService {
itemNewTurnInDO.setLocationNumber(itemAccounts.getLocationNumber()); itemNewTurnInDO.setLocationNumber(itemAccounts.getLocationNumber());
itemNewTurnInDO.setNewQty(newqty); itemNewTurnInDO.setNewQty(newqty);
itemNewTurnInDO.setQty(newqty); itemNewTurnInDO.setQty(newqty);
//添加库存事务
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
transactionCreateReqVO.setItemNumber(createReqVO.getItemNumber());
transactionCreateReqVO.setLocationNumber(createReqVO.getLocationNumber());
transactionCreateReqVO.setAreaNumber(createReqVO.getAreaNumber());
transactionCreateReqVO.setTransactionType("IN");
transactionCreateReqVO.setQty(createReqVO.getQty());
transactionCreateReqVO.setDescribes("新到货转账内往账内添加数据");//描述
transactionCreateReqVO.setOperator(null);
transactionCreateReqVO.setCreator(getLoginUserId().toString());
transactionCreateReqVO.setAssociatedNumber(null);
transactionCreateReqVO.setInventoryAction(TransactionEnum.NEW_TURN_IN.getCode());
transactionCreateReqVO.setType(ItemAccountStatusEnum.IN.getCode());
list.add(transactionCreateReqVO);
} }
//记录表 //记录表
itemNewTurnInMapper.insert(itemNewTurnInDO); itemNewTurnInMapper.insert(itemNewTurnInDO);
@ -480,18 +496,26 @@ public class ItemAccountsServiceImpl implements ItemAccountsService {
@Transactional @Transactional
public Integer replaceLocation(ItemAccountsDO accountsDO) { public Integer replaceLocation(ItemAccountsDO accountsDO) {
ItemAccountsDO itemAccountsDO = itemAccountsMapper.selectById(accountsDO.getId()); ItemAccountsDO itemAccountsDO = itemAccountsMapper.selectById(accountsDO.getId());
if(accountsDO.getItemNumber().equals(itemAccountsDO.getItemNumber())){ QueryWrapper<ItemAccountsDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("available", BooleanTypeEnum.Y.getCode());
queryWrapper.eq("item_number", accountsDO.getItemNumber());
List<ItemAccountsDO> lists = itemAccountsMapper.selectList(queryWrapper);
if(!lists.isEmpty()){
throw ServiceExceptionUtil.exception(ITEM_IS_HAVE);
}
if(accountsDO.getItemNumber().equals(itemAccountsDO.getItemNumber())){//判断是否更换的为同一个备件
throw ServiceExceptionUtil.exception(LOCATION_CAN_NOT_REPLACE2); throw ServiceExceptionUtil.exception(LOCATION_CAN_NOT_REPLACE2);
} }
//查询新备件在备件台账中是否存在 BigDecimal allByLocation = getAllByLocation(accountsDO.getLocationNumber());
if(allByLocation.compareTo(BigDecimal.ZERO)!=0){//该库位下有库存不能更换
throw ServiceExceptionUtil.exception(LOCATION_COUNTS_EXISTS);
}
//查询该库位下所有数据
QueryWrapper<ItemAccountsDO> itemAccountsDOQueryWrapper = new QueryWrapper<>(); QueryWrapper<ItemAccountsDO> itemAccountsDOQueryWrapper = new QueryWrapper<>();
itemAccountsDOQueryWrapper.eq("available", BooleanTypeEnum.Y.getCode()); itemAccountsDOQueryWrapper.eq("available", BooleanTypeEnum.Y.getCode());
if (itemAccountsDO.getIsInAccount() != null) { itemAccountsDOQueryWrapper.eq("location_number", itemAccountsDO.getLocationNumber());
itemAccountsDOQueryWrapper.eq("is_in_account", itemAccountsDO.getIsInAccount());
}
itemAccountsDOQueryWrapper.eq("item_number", accountsDO.getItemNumber());
List<ItemAccountsDO> itemAccountsDOList = itemAccountsMapper.selectList(itemAccountsDOQueryWrapper); List<ItemAccountsDO> itemAccountsDOList = itemAccountsMapper.selectList(itemAccountsDOQueryWrapper);
if (itemAccountsDOList.size() == 0) { for (ItemAccountsDO en:itemAccountsDOList) {
//新增备件库位变更记录 //新增备件库位变更记录
ItemLocationReplaceDO itemLocationReplaceDO = new ItemLocationReplaceDO(); ItemLocationReplaceDO itemLocationReplaceDO = new ItemLocationReplaceDO();
itemLocationReplaceDO.setItemNumber(accountsDO.getItemNumber()); itemLocationReplaceDO.setItemNumber(accountsDO.getItemNumber());
@ -499,26 +523,10 @@ public class ItemAccountsServiceImpl implements ItemAccountsService {
itemLocationReplaceDO.setLocationNumber(accountsDO.getLocationNumber()); itemLocationReplaceDO.setLocationNumber(accountsDO.getLocationNumber());
itemLocationReplaceDO.setCreateTime(LocalDateTime.now()); itemLocationReplaceDO.setCreateTime(LocalDateTime.now());
itemLocationReplaceMapper.insert(itemLocationReplaceDO); itemLocationReplaceMapper.insert(itemLocationReplaceDO);
//删除备件台账的数据 en.setItemNumber(accountsDO.getItemNumber());
itemAccountsMapper.deleteById(itemAccountsDO);
//新增一条备件台账(该库位下的)
ItemAccountsDO newItemAccountsDO = new ItemAccountsDO();
newItemAccountsDO.setIsInAccount(itemAccountsDO.getIsInAccount());
newItemAccountsDO.setItemNumber(accountsDO.getItemNumber());
newItemAccountsDO.setLocationNumber(accountsDO.getLocationNumber());
//根据库位查询库区
QueryWrapper<LocationDO> locationDOQueryWrapper = new QueryWrapper<>();
locationDOQueryWrapper.eq("available", BooleanTypeEnum.Y.getCode());
locationDOQueryWrapper.eq("number", accountsDO.getLocationNumber());
LocationDO locationDO = locationMapper.selectOne(locationDOQueryWrapper);
newItemAccountsDO.setAreaNumber(locationDO.getAreaNumber());
//库位中新的备件数量是0 //库位中新的备件数量是0
newItemAccountsDO.setQty(BigDecimal.ZERO); en.setQty(BigDecimal.ZERO);
newItemAccountsDO.setCreateTime(LocalDateTime.now()); itemAccountsMapper.updateById(en);
newItemAccountsDO.setAvailable(BooleanTypeEnum.Y.getCode());
itemAccountsMapper.insert(newItemAccountsDO);
} else {
throw ServiceExceptionUtil.exception(LOCATION_CAN_NOT_REPLACE);
} }
return 1; return 1;
} }
@ -564,7 +572,7 @@ public class ItemAccountsServiceImpl implements ItemAccountsService {
} }
/** /**
* 备件号和库位号是否存在 * 非当前备件号和库位号是否存在
*/ */
private void validate(String itemNumber,String locationNumber) { private void validate(String itemNumber,String locationNumber) {
QueryWrapper<ItemAccountsDO> queryWrapper = new QueryWrapper<>(); QueryWrapper<ItemAccountsDO> queryWrapper = new QueryWrapper<>();
@ -577,5 +585,19 @@ public class ItemAccountsServiceImpl implements ItemAccountsService {
} }
} }
/**
* 备件号和非库位号是否存在
*/
private void validate1(String itemNumber,String locationNumber) {
QueryWrapper<ItemAccountsDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("item_number",itemNumber);
queryWrapper.ne("location_number",locationNumber);
queryWrapper.eq("available","TRUE");
List<ItemAccountsDO> itemAccountsDOS = itemAccountsMapper.selectList(queryWrapper);
if(!itemAccountsDOS.isEmpty()){
throw exception(ITEM_EXISTS);
}
}
} }

11
win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/service/transaction/TransactionServiceImpl.java

@ -62,17 +62,18 @@ public class TransactionServiceImpl implements TransactionService {
public Integer create(List<TransactionCreateReqVO> createReqVOList) { public Integer create(List<TransactionCreateReqVO> createReqVOList) {
int result = 0; int result = 0;
for (TransactionCreateReqVO createReqVO : createReqVOList) { for (TransactionCreateReqVO createReqVO : createReqVOList) {
TransactionDO transactionDO = TransactionConvert.INSTANCE.convert(createReqVO);
//生成单据号 //生成单据号
QueryWrapper<ItemDO> itemDOQueryWrapper = new QueryWrapper<>(); QueryWrapper<ItemDO> itemDOQueryWrapper = new QueryWrapper<>();
itemDOQueryWrapper.eq("number", transactionDO.getItemNumber()); itemDOQueryWrapper.eq("number", createReqVO.getItemNumber());
ItemDO itemDO = itemMapper.selectOne(itemDOQueryWrapper); ItemDO itemDO = itemMapper.selectOne(itemDOQueryWrapper);
transactionDO.setUom(itemDO.getUom()); createReqVO.setUom(itemDO.getUom());
//result += Mapper.insert(transactionDO); //result += Mapper.insert(transactionDO);
ItemAccountsCreateReqVO itemAccountsCreateReqVO = new ItemAccountsCreateReqVO(); ItemAccountsCreateReqVO itemAccountsCreateReqVO = new ItemAccountsCreateReqVO();
BeanUtils.copyProperties(transactionDO, itemAccountsCreateReqVO); BeanUtils.copyProperties(createReqVO, itemAccountsCreateReqVO);
List<TransactionDO> transactionDOS = itemAccountsMapper.updateItemAccountsQty(itemAccountsCreateReqVO, transactionDO.getTransactionType(), transactionDO.getInventoryAction()); List<TransactionDO> transactionDOS = itemAccountsMapper.updateItemAccountsQty(itemAccountsCreateReqVO, createReqVO.getTransactionType(), createReqVO.getInventoryAction());
for(TransactionDO en:transactionDOS){//循环出库存记录 for(TransactionDO en:transactionDOS){//循环出库存记录
TransactionDO transactionDO = TransactionConvert.INSTANCE.convert(createReqVO);
transactionDO.setType(en.getType()); transactionDO.setType(en.getType());
transactionDO.setQty(en.getQty()); transactionDO.setQty(en.getQty());
result += Mapper.insert(transactionDO); result += Mapper.insert(transactionDO);

Loading…
Cancel
Save