8/30 损耗出库

workplace
wangwei 10 months ago
parent 485586e29e
commit 241f7901fc

@ -120,4 +120,18 @@ public class IoFifoDesOrderController extends BaseController {
}
@PostMapping("/udiwms/collect/fifo/desOrder/destroyOut")
public BaseResponse destroyOut(@RequestBody AddInvDesDetaiRequest addInvDesDetaiRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
Boolean save = splitDesOrderService.destroyOut(addInvDesDetaiRequest);
if (!save){
return ResultVOUtils.error("错误");
}
return ResultVOUtils.success("损耗出库成功");
}
}

@ -27,7 +27,7 @@ import lombok.NoArgsConstructor;
public class IoSplitDesOrder implements Serializable {
@TableId(value = "id", type = IdType.INPUT)
@ApiModelProperty(value = "")
private Integer id;
private Long id;
@TableField(value = "billNo")
@ApiModelProperty(value = "")

@ -214,5 +214,11 @@ public class IoSplitCodeEntity implements Serializable {
private Integer fifoSplit;
@TableField(exist = false)
private String productName;
@TableField(exist = false)
private String workplaceName;
private static final long serialVersionUID = 1L;
}

@ -127,11 +127,12 @@ public class IoSplitFifoInv implements Serializable {
/**
*
*/
@TableField(value = "reCount")
@TableField(value = "availableCount")
@ApiModelProperty(value = "可用数量")
private Integer availableCount;
/**
*
*/

@ -14,4 +14,7 @@ public class AddInvDesDetaiRequest {
private String updateUser;
private String createUser;
//损耗出库数量
private Integer outCount;
}

@ -13,7 +13,7 @@ import java.util.Date;
public class IoSplitDesOrderDetailRequest extends ListPageRequest {
private Integer id;
private Long id;
private Long workPlaceCode;

@ -8,7 +8,7 @@ import java.util.Date;
public class IoSplitDesOrderDetailResponse {
private Integer id;
private Long id;
private Long workPlaceCode;

@ -20,10 +20,13 @@ import com.glxp.api.req.collect.IoSplitDesOrderRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.collect.IoSplitDesOrderResponse;
import com.glxp.api.service.inout.IoSplitFifoCodeService;
import com.glxp.api.service.inout.IoSplitFifoInvService;
import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.IntUtil;
import com.glxp.api.util.OrderNoTypeBean;
import org.apache.poi.ss.formula.functions.Offset;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Collections;
@ -135,4 +138,64 @@ public class IoSplitDesOrderService extends ServiceImpl<IoSplitDesOrderMapper, I
ioSplitDesOrderCodeService.save(splitDesOrderCode);
return collectOrder;
}
@Resource
IoSplitFifoInvService ioSplitFifoInvService;
@Transactional(rollbackFor = Exception.class)
public Boolean destroyOut(AddInvDesDetaiRequest addInvDesDetaiRequest) {
IoSplitDesOrder collectOrder;
collectOrder = IoSplitDesOrder.builder()
.id(IdUtil.getSnowflakeNextId())
.billNo(gennerOrderUtils.createWdOrderNo(new OrderNoTypeBean(Constant.SPLIT_DES_ORDER, "yyyyMMdd")))
.busType("1")
.orderType(1)
.workPlaceCode(addInvDesDetaiRequest.getSplitFifoInv().getWorkPlaceCode())
.createTime(new Date())
.billTime(new Date())
.remark(addInvDesDetaiRequest.getRemark())
.status(1)
.createUser(addInvDesDetaiRequest.getCreateUser())
.updateTime(new Date())
.updateUser(addInvDesDetaiRequest.getUpdateUser())
.build();
boolean save = save(collectOrder);
if(!save){
return false;
}
//拿到 产品库存
IoSplitFifoInv splitFifoInv = ioSplitFifoInvService.getById(addInvDesDetaiRequest.getSplitFifoInv().getId());
//修改产品 库存 出库数量 可用数量 剩余数量
splitFifoInv.setOutCount(splitFifoInv.getOutCount() + addInvDesDetaiRequest.getOutCount());//出库数量
splitFifoInv.setReCount(splitFifoInv.getInCount() - splitFifoInv.getOutCount());//剩余数量
splitFifoInv.setAvailableCount(splitFifoInv.getInCount() - splitFifoInv.getOutCount()-splitFifoInv.getLockCount());
splitFifoInv.setUpdateTime(new Date());
//更改 库存
boolean update = ioSplitFifoInvService.updateById(splitFifoInv);
if (!update){
return false;
}
// IoSplitFifoInv splitFifoInv = addInvDesDetaiRequest.getSplitFifoInv();
IoSplitDesOrderDetail splitDesOrderDetail = IoSplitDesOrderDetail.builder()
.id(IdUtil.getSnowflakeNextId())
.workPlaceCode(collectOrder.getWorkPlaceCode())
.orderIdFk(collectOrder.getBillNo())
.invId(splitFifoInv.getId())
.relId(splitFifoInv.getRelId())
.batchNo(splitFifoInv.getBatchNo())
.produceDate(splitFifoInv.getProduceDate())
.expireDate(splitFifoInv.getExpireDate())
.supId(splitFifoInv.getSupId())
.count(splitFifoInv.getReCount())
.reCount(splitFifoInv.getReCount())
.createTime(new Date())
.updateTime(new Date())
.remark("").build();
boolean save1 = splitDesOrderDetailService.save(splitDesOrderDetail);
if (!save1){
return false;
}
return true;
}
}

@ -3,9 +3,12 @@
<mapper namespace="com.glxp.api.dao.inout.IoSplitCodeMapper">
<select id="filterList" parameterType="com.glxp.api.req.inout.IoSplitCodeRequest"
resultType="com.glxp.api.entity.inout.IoSplitCodeEntity">
SELECT io_split_code.*
FROM io_split_code
SELECT isc.*,bp.cpmctymc productName,sw.workplaceName
FROM io_split_code isc
left join basic_products bp on bp.nameCode = isc.nameCode
left join sys_workplace sw on sw.workplaceId = isc.workPlaceCode
<where>
isc.remainCount > 0
<if test="code != '' and code != null">
AND code LIKE #{code}
</if>

Loading…
Cancel
Save