feat 创建到库单

This commit is contained in:
Amjacks 2025-03-26 09:06:23 +08:00
parent 9f6f959e1b
commit dd2f232f96
8 changed files with 186 additions and 2 deletions

View File

@ -28,6 +28,7 @@ public class MaterialReceiveRequest extends FieldAccessor implements DataInfo<Ma
private String respDepart;
private Timestamp solveTime;
private String passState;
private String deliveryName;
/**
* 2024.09.26 新增
@ -198,4 +199,11 @@ public class MaterialReceiveRequest extends FieldAccessor implements DataInfo<Ma
this.solveTime = solveTime;
}
public String getDeliveryName() {
return deliveryName;
}
public void setDeliveryName(String deliveryName) {
this.deliveryName = deliveryName;
}
}

View File

@ -0,0 +1,35 @@
package com.cim.idm.constants;
import lombok.Getter;
import java.util.ArrayList;
import java.util.List;
@Getter
public enum ReceiveTypeEnums {
Z001("Z001", "生产物资采购订单"),
Z002("Z002", "研发采购订单"),
Z003("Z003", "非生产物资采购订单"),
Z004("Z004", "固定资产、在建工程采购订单"),
DK("DK", "到库单");
private final String code;
private final String info;
ReceiveTypeEnums(String code, String info) {
this.code = code;
this.info = info;
}
/**
* 采购订单
*/
public static List<String> getPurchase() {
List<String> str = new ArrayList<>();
str.add(Z001.getCode());
str.add(Z002.getCode());
str.add(Z003.getCode());
str.add(Z004.getCode());
return str;
}
}

View File

@ -0,0 +1,32 @@
package com.cim.idm.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.cim.idm.model.DeliveryDto;
import com.cim.idm.service.IDeliveryService;
import com.cim.idm.utils.AjaxResult;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@RestController
@RequestMapping("/delivery")
@EnableAutoConfiguration
public class DeliveryController {
@Resource
private IDeliveryService deliveryService;
/**
* 创建入库单
*/
@PostMapping(value = "/create")
public AjaxResult createDelivery(@RequestBody JSONObject in) {
DeliveryDto dto = JSON.toJavaObject(in, DeliveryDto.class);
return AjaxResult.me().setSuccess(true).setMessage(deliveryService.createDelivery(dto));
}
}

View File

@ -0,0 +1,26 @@
package com.cim.idm.dao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
@Mapper
public interface DeliveryDao {
/**
* 新增到货单
*/
int createDelivery(@Param("siteName") String siteName,
@Param("receiveRequestName") String receiveRequestName,
@Param("receiveRequestType") String receiveRequestType );
/**
* 绑定采购订单 到货单
*/
int bindDelivery(@Param("siteName") String siteName,
@Param("receiveRequestName") String receiveRequestName,
@Param("nameList") List<String> nameList);
}

View File

@ -0,0 +1,18 @@
package com.cim.idm.model;
import com.cim.idm.wmspackage.invoice.management.data.MaterialReceiveRequestKey;
import lombok.Data;
import java.util.List;
@Data
public class DeliveryDto {
// siteName
private String siteName;
// 单号名称
private String receiveRequestName;
// 数据
private List<MaterialReceiveRequestKey> dataList;
}

View File

@ -0,0 +1,12 @@
package com.cim.idm.service;
import com.cim.idm.model.DeliveryDto;
public interface IDeliveryService {
/**
* 新增到货单
* @param dto 请求
* @return 到货单
*/
String createDelivery(DeliveryDto dto);
}

View File

@ -0,0 +1,35 @@
package com.cim.idm.service.Impl;
import com.cim.idm.constants.ReceiveTypeEnums;
import com.cim.idm.dao.DeliveryDao;
import com.cim.idm.model.DeliveryDto;
import com.cim.idm.service.IDeliveryService;
import com.cim.idm.wmspackage.invoice.management.data.MaterialReceiveRequestKey;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class DeliveryServiceImpl implements IDeliveryService {
@Resource
private DeliveryDao deliveryDao;
@Override
@Transactional
public String createDelivery(DeliveryDto dto) {
// 添加到库单
if (deliveryDao.createDelivery(dto.getSiteName(),
dto.getReceiveRequestName(), ReceiveTypeEnums.DK.getCode()) <= 0) {
return "添加到库单失败";
}
// 更新采购单到库单字段
List<String> collect = dto.getDataList().stream()
.map(MaterialReceiveRequestKey::getReceiveRequestName).collect(Collectors.toList());
deliveryDao.bindDelivery(dto.getSiteName(), dto.getReceiveRequestName(), collect);
return "更新成功";
}
}

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cim.idm.dao.DeliveryDao">
<insert id="createDelivery">
INSERT INTO MATERIALRECEIVEREQUEST(SITENAME, RECEIVEREQUESTNAME, RECEIVEREQUESTTYPE)
VALUES (#{siteName}, #{receiveRequestName}, #{receiveRequestType})
</insert>
<update id="bindDelivery">
UPDATE MATERIALRECEIVEREQUEST SET DELIVERYNAME = #{receiveRequestName}
WHERE SITENAME = #{siteName}
AND RECEIVEREQUESTNAME IN
<foreach item="name" index="index" collection="nameList" open="(" separator="," close=")">
#{name}
</foreach>
</update>
</mapper>