Merge remote-tracking branch 'origin/dev' into dev

pro
schry 2 years ago
commit f75b8fdd86

@ -2,6 +2,7 @@ package com.glxp.api.controller.inout;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.annotation.AuthRuleAnnotation;
@ -702,14 +703,27 @@ public class IoOrderController extends BaseController {
newOrder.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT);//设置单据未草稿状态 newOrder.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT);//设置单据未草稿状态
newOrder.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE); //设置验收状态为未验收 newOrder.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE); //设置验收状态为未验收
newOrder.setFromType(ConstantStatus.FROM_COPY); newOrder.setFromType(ConstantStatus.FROM_COPY);
newOrder.setOrderType(2);
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderChangeRequest.getAction()); BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderChangeRequest.getAction());
String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trim(bussinessTypeEntity.getPrefix()), "yyyyMMdd")); String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(bussinessTypeEntity.getPrefix()), "yyyyMMdd"));
String supplementOrderNo = orderNo; String supplementOrderNo = orderNo;
newOrder.setBillNo(supplementOrderNo); newOrder.setBillNo(supplementOrderNo);
newOrder.setReplicateNo(null); //新单据的复制单号置空 newOrder.setReplicateNo(null); //新单据的复制单号置空
originOrder.setReplicateNo(orderNo); originOrder.setReplicateNo(orderNo);
List<IoCodeTempEntity> supplementCodes = new ArrayList<>(); List<IoCodeTempEntity> supplementCodes = new ArrayList<>();
// 生成业务单
List<IoOrderDetailBizEntity> orderDetailBizEntities = orderDetailBizService.findByOrderId(originOrder.getBillNo());
if (CollUtil.isNotEmpty(orderDetailBizEntities)) {
for (IoOrderDetailBizEntity orderDetailBizEntity : orderDetailBizEntities) {
orderDetailBizEntity.setOrderIdFk(newOrder.getBillNo());
orderDetailBizEntity.setId(IdUtil.getSnowflakeNextId());
orderDetailBizService.insert(orderDetailBizEntity);
}
}
List<IoCodeEntity> products = addOrderChangeRequest.getProducts(); List<IoCodeEntity> products = addOrderChangeRequest.getProducts();
originCodes.forEach( originCodes.forEach(
code -> { code -> {
@ -720,7 +734,6 @@ public class IoOrderController extends BaseController {
|| (StrUtil.isBlank(product.getBatchNo()) && StrUtil.isBlank(code.getBatchNo()))) { || (StrUtil.isBlank(product.getBatchNo()) && StrUtil.isBlank(code.getBatchNo()))) {
IoCodeTempEntity supplementCode = new IoCodeTempEntity(); IoCodeTempEntity supplementCode = new IoCodeTempEntity();
BeanUtil.copyProperties(code, supplementCode); BeanUtil.copyProperties(code, supplementCode);
supplementCode.setCode(product.getCode());
supplementCode.setInvCode(newOrder.getInvCode()); supplementCode.setInvCode(newOrder.getInvCode());
supplementCode.setDeptCode(newOrder.getDeptCode()); supplementCode.setDeptCode(newOrder.getDeptCode());
supplementCode.setOrderId(newOrder.getBillNo()); supplementCode.setOrderId(newOrder.getBillNo());
@ -742,6 +755,13 @@ public class IoOrderController extends BaseController {
orderService.insertOrder(newOrder); orderService.insertOrder(newOrder);
codeTempService.insertBatch(supplementCodes); codeTempService.insertBatch(supplementCodes);
orderService.update(originOrder); orderService.update(originOrder);
ioAddInoutService.dealProcess(newOrder);
//不需要手动校验,则走正常单据校验处理流程
if (!ioCheckInoutService.checkManual(newOrder.getBillNo())) {
ioCheckInoutService.check(newOrder.getBillNo());
}
return ResultVOUtils.success(); return ResultVOUtils.success();
} }

@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
@Data @Data
@TableName(value = "pur_order_detail") @TableName(value = "pur_order_detail")
public class PurOrderDetailEntity { public class PurOrderDetailEntity {
@ -42,6 +44,9 @@ public class PurOrderDetailEntity {
@TableField(value = "supId") @TableField(value = "supId")
private String supId; private String supId;
@TableField(value = "price")
private BigDecimal price;
/** /**
* *
*/ */
@ -61,4 +66,4 @@ public class PurOrderDetailEntity {
public static final String COL_SUPID = "supId"; public static final String COL_SUPID = "supId";
public static final String COL_ZCZBHHZBAPZBH = "zczbhhzbapzbh"; public static final String COL_ZCZBHHZBAPZBH = "zczbhhzbapzbh";
} }

@ -242,11 +242,11 @@ public class IoOrderResponse {
public String getFromName() { public String getFromName() {
if (StrUtil.isNotEmpty(fromCorpName))
return fromCorpName;
if (StrUtil.isNotEmpty(fromInvName)) if (StrUtil.isNotEmpty(fromInvName))
return fromInvName; return fromInvName;
if (StrUtil.isNotEmpty(fromCorpName))
return fromCorpName;
return fromName; return fromName;
} }
} }

@ -259,8 +259,14 @@ public class IoChangeInoutService {
codeTempService.insertBatch(codeTempEntities); codeTempService.insertBatch(codeTempEntities);
// 生成业务单 // 生成业务单
List<IoOrderDetailBizEntity> orderDetailBizEntities = orderDetailBizService.findByOrderId(orderEntity.getBillNo());
if (CollUtil.isNotEmpty(orderDetailBizEntities)) {
for (IoOrderDetailBizEntity orderDetailBizEntity : orderDetailBizEntities) {
orderDetailBizEntity.setOrderIdFk(outOrder.getBillNo());
orderDetailBizEntity.setId(IdUtil.getSnowflakeNextId());
orderDetailBizService.insert(orderDetailBizEntity);
}
}
if (isGenInovice) { if (isGenInovice) {
//生成发票信息 //生成发票信息

@ -283,7 +283,10 @@ public class IoCheckInoutService {
return; return;
} }
if (orderEntity.getFromType() != ConstantStatus.FROM_UDISP) { if (orderEntity.getFromType() != ConstantStatus.FROM_UDISP) {
orderDetailBizService.deleteByOrderId(orderEntity.getBillNo()); if (orderEntity.getFromType() != ConstantStatus.FROM_COPY
&& orderEntity.getFromType() != ConstantStatus.FROM_CHANGE) {
orderDetailBizService.deleteByOrderId(orderEntity.getBillNo());
}
orderDetailResultService.deleteByOrderId(orderEntity.getBillNo()); orderDetailResultService.deleteByOrderId(orderEntity.getBillNo());
if (!orderDetailBizService.isExit(orderEntity.getBillNo())) { if (!orderDetailBizService.isExit(orderEntity.getBillNo())) {
orderDetailCodeEntities.forEach(orderDetailCodeEntity -> orderDetailCodeEntities.forEach(orderDetailCodeEntity ->

@ -175,7 +175,6 @@ public class GennerOrderUtils {
return completionRandom(serialWithPrefix, orderNoTypeEnum); return completionRandom(serialWithPrefix, orderNoTypeEnum);
} }
private Long getSecondsNextEarlyMorning() { private Long getSecondsNextEarlyMorning() {
Calendar cal = Calendar.getInstance(); Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_YEAR, 1); cal.add(Calendar.DAY_OF_YEAR, 1);

@ -1,177 +1,184 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.purchase.PurOrderDetailDao"> <mapper namespace="com.glxp.api.dao.purchase.PurOrderDetailDao">
<resultMap id="BaseResultMap" autoMapping="true" type="com.glxp.api.entity.purchase.PurOrderDetailEntity"> <resultMap id="BaseResultMap" autoMapping="true" type="com.glxp.api.entity.purchase.PurOrderDetailEntity">
<!--@mbg.generated--> <!--@mbg.generated-->
<!--@Table pur_order_detail--> <!--@Table pur_order_detail-->
<!-- <id column="id" jdbcType="INTEGER" property="id" />--> <!-- <id column="id" jdbcType="INTEGER" property="id" />-->
<result column="orderIdFk" jdbcType="VARCHAR" property="orderIdFk" /> <result column="orderIdFk" jdbcType="VARCHAR" property="orderIdFk"/>
<result column="productId" jdbcType="INTEGER" property="productId" /> <result column="productId" jdbcType="INTEGER" property="productId"/>
<result column="productName" jdbcType="VARCHAR" property="productName" /> <result column="productName" jdbcType="VARCHAR" property="productName"/>
<result column="count" jdbcType="INTEGER" property="count" /> <result column="count" jdbcType="INTEGER" property="count"/>
<result column="supId" jdbcType="VARCHAR" property="supId" /> <result column="supId" jdbcType="VARCHAR" property="supId"/>
<result column="zczbhhzbapzbh" jdbcType="VARCHAR" property="zczbhhzbapzbh" /> <result column="zczbhhzbapzbh" jdbcType="VARCHAR" property="zczbhhzbapzbh"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
<!--@mbg.generated--> <!--@mbg.generated-->
id, orderIdFk, productId, productName, `count`, supId, zczbhhzbapzbh id, orderIdFk, productId, productName, `count`, supId, zczbhhzbapzbh
</sql> </sql>
<select id="queryPageList" parameterType="com.glxp.api.req.purchase.PurOrderDetailRequest" <select id="queryPageList" parameterType="com.glxp.api.req.purchase.PurOrderDetailRequest"
resultType="com.glxp.api.entity.purchase.PurOrderDetailEntity"> resultType="com.glxp.api.entity.purchase.PurOrderDetailEntity">
select * select *
FROM pur_order_detail FROM pur_order_detail
<where> <where>
<if test="orderIdFk != '' and orderIdFk != null"> <if test="orderIdFk != '' and orderIdFk != null">
AND orderIdFk = #{orderIdFk} AND orderIdFk = #{orderIdFk}
</if> </if>
<if test="productId != null"> <if test="productId != null">
AND productId = #{productId} AND productId = #{productId}
</if> </if>
<if test="supId != '' and supId != null"> <if test="supId != '' and supId != null">
AND supId = #{supId} AND supId = #{supId}
</if> </if>
</where> </where>
</select>
</select>
<select id="joinQueryList" parameterType="com.glxp.api.req.purchase.PurOrderDetailRequest"
resultType="com.glxp.api.res.purchase.PurOrderDetailResponse">
SELECT
pur_order_detail.*,
basic_products.ggxh spec,
basic_products.nameCode nameCode,
basic_products.measname,
basic_products.manufactory,
basic_products.ylqxzcrbarmc,
basic_corp.`name` supName
FROM
pur_order_detail
left JOIN basic_udirel ON pur_order_detail.productId = basic_udirel.id
left JOIN basic_products ON basic_udirel.uuid = basic_products.uuid
left JOIN basic_corp ON pur_order_detail.supId = basic_corp.erpId
<where>
<if test="orderIdFk != '' and orderIdFk != null">
AND orderIdFk = #{orderIdFk}
AND basic_products.diType=1
</if>
<if test="productId != null">
AND productId = #{productId}
</if>
<if test="supId != '' and supId != null">
AND supId = #{supId}
</if>
</where>
</select>
<delete id="deleteByIds" parameterType="java.util.List">
DELETE FROM pur_order_detail WHERE id in
<foreach collection="ids" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<delete id="deleteByOrderId" parameterType="map">
DELETE
FROM pur_order_detail
WHERE orderIdFk = #{orderIdFk}
</delete>
<update id="update" parameterType="com.glxp.api.entity.purchase.PurOrderDetailEntity">
UPDATE pur_order_detail
<trim prefix="set" suffixOverrides=",">
<if test="orderIdFk != null">orderIdFk=#{orderIdFk},</if>
<if test="productId != null">productId=#{productId},</if>
<if test="productName != null">productName=#{productName},</if>
<if test="count != null">`count`=#{count},</if>
<if test="supId != null">supId=#{supId},</if>
<if test="zczbhhzbapzbh != null">zczbhhzbapzbh=#{zczbhhzbapzbh},</if>
</trim>
WHERE id = #{id}
</update>
<insert id="insertPurOrderDetailEntity" keyProperty="id" parameterType="com.glxp.api.entity.purchase.PurOrderDetailEntity"> <select id="joinQueryList" parameterType="com.glxp.api.req.purchase.PurOrderDetailRequest"
REPLACE INTO pur_order_detail resultType="com.glxp.api.res.purchase.PurOrderDetailResponse">
( orderIdFk,productId,productName,count,supId,zczbhhzbapzbh) values SELECT pur_order_detail.*,
basic_products.ggxh spec,
basic_products.nameCode nameCode,
basic_products.measname,
basic_products.manufactory,
basic_products.ylqxzcrbarmc,
basic_corp.`name` supName
FROM pur_order_detail
left JOIN basic_udirel ON pur_order_detail.productId = basic_udirel.id
left JOIN basic_products ON basic_udirel.uuid = basic_products.uuid
left JOIN basic_corp ON pur_order_detail.supId = basic_corp.erpId
<where>
<if test="orderIdFk != '' and orderIdFk != null">
AND orderIdFk = #{orderIdFk}
AND basic_products.diType = 1
</if>
<if test="productId != null">
AND productId = #{productId}
</if>
<if test="supId != '' and supId != null">
AND supId = #{supId}
</if>
</where>
</select>
<foreach collection="datas" item="item" index="index" separator=",">
(
#{item.orderIdFk},
#{item.productId},
#{item.productName},
#{item.count},
#{item.supId},
#{item.zczbhhzbapzbh}
)
</foreach>
</insert>
<select id="selectIoOrderDetailBiz" parameterType="long" <delete id="deleteByIds" parameterType="java.util.List">
resultType="com.glxp.api.entity.basic.BasicProductsEntity"> DELETE
SELECT FROM pur_order_detail WHERE id in
b2.* <foreach collection="ids" item="item" open="(" separator="," close=")">
FROM #{item}
pur_order_detail p1 </foreach>
LEFT JOIN basic_udirel b1 on b1.id=p1.productId </delete>
LEFT JOIN basic_products b2 on b1.uuid = b2 .uuid
<where>
<if test="id != null and id!='' "> <delete id="deleteByOrderId" parameterType="map">
AND p1.id = #{id} DELETE
</if> FROM pur_order_detail
</where> WHERE orderIdFk = #{orderIdFk}
GROUP BY uuid </delete>
</select>
<update id="update" parameterType="com.glxp.api.entity.purchase.PurOrderDetailEntity">
UPDATE pur_order_detail
<trim prefix="set" suffixOverrides=",">
<if test="orderIdFk != null">
orderIdFk=#{orderIdFk},
</if>
<if test="productId != null">
productId=#{productId},
</if>
<if test="productName != null">
productName=#{productName},
</if>
<if test="count != null">
`count`=#{count},
</if>
<if test="supId != null">
supId=#{supId},
</if>
<if test="zczbhhzbapzbh != null">
zczbhhzbapzbh=#{zczbhhzbapzbh},
</if>
<if test="price != null">
price=#{price},
</if>
</trim>
WHERE id = #{id}
</update>
<insert id="insertPurOrderDetailEntity" keyProperty="id"
parameterType="com.glxp.api.entity.purchase.PurOrderDetailEntity">
REPLACE INTO pur_order_detail
(orderIdFk, productId, productName, count, supId, zczbhhzbapzbh, price) values
<foreach collection="datas" item="item" index="index" separator=",">
(#{item.orderIdFk},
#{item.productId},
#{item.productName},
#{item.count},
#{item.supId},
#{item.zczbhhzbapzbh}, #{item.price})
</foreach>
</insert>
<select id="selectIoOrderDetailBiz" parameterType="long"
resultType="com.glxp.api.entity.basic.BasicProductsEntity">
SELECT b2.*
FROM pur_order_detail p1
LEFT JOIN basic_udirel b1 on b1.id = p1.productId
LEFT JOIN basic_products b2 on b1.uuid = b2.uuid
<where>
<if test="id != null and id != ''">
AND p1.id = #{id}
</if>
</where>
GROUP BY uuid
</select>
<select id="selectDetailList" resultType="com.glxp.api.res.purchase.PurOrderDetailResponse"> <select id="selectDetailList" resultType="com.glxp.api.res.purchase.PurOrderDetailResponse">
SELECT SELECT pur_order_detail.*,
pur_order_detail.*, pur_order.billNo,
pur_order.billNo, basic_products.ggxh spec,
basic_products.ggxh spec, basic_products.measname,
basic_products.measname, basic_products.manufactory,
basic_products.manufactory, basic_products.ylqxzcrbarmc,
basic_products.ylqxzcrbarmc, basic_corp.`name` supName
basic_corp.`name` supName FROM pur_order_detail
FROM INNER JOIN basic_udirel ON pur_order_detail.productId = basic_udirel.id
pur_order_detail INNER JOIN basic_products ON basic_udirel.uuid = basic_products.uuid
INNER JOIN basic_udirel ON pur_order_detail.productId = basic_udirel.id INNER JOIN basic_corp ON pur_order_detail.supId = basic_corp.erpId
INNER JOIN basic_products ON basic_udirel.uuid = basic_products.uuid left join pur_order on pur_order.id = pur_order_detail.orderIdFk
INNER JOIN basic_corp ON pur_order_detail.supId = basic_corp.erpId <where>
left join pur_order on pur_order.id = pur_order_detail.orderIdFk <if test="billNo != null and billNo != ''">
<where> AND pur_order.billNo like concat('%', #{billNo}, '%')
<if test="billNo != null and billNo != ''"> </if>
AND pur_order.billNo like concat('%', #{billNo}, '%') <if test="productId != null">
</if> AND productId like concat('%', #{productId}, '%')
<if test="productId != null"> </if>
AND productId like concat('%', #{productId}, '%') <if test="productName != null and productName != ''">
</if> AND productName like concat('%', #{productName}, '%')
<if test="productName != null and productName != ''"> </if>
AND productName like concat('%', #{productName}, '%') <if test="spec != null and spec != ''">
</if> AND basic_products.ggxh like concat('%', #{spec}, '%')
<if test="spec != null and spec != ''"> </if>
AND basic_products.ggxh like concat('%', #{spec}, '%') <if test="zczbhhzbapzbh != null and zczbhhzbapzbh != ''">
</if> AND pur_order_detail.zczbhhzbapzbh like concat('%', #{zczbhhzbapzbh}, '%')
<if test="zczbhhzbapzbh != null and zczbhhzbapzbh != ''"> </if>
AND pur_order_detail.zczbhhzbapzbh like concat('%', #{zczbhhzbapzbh}, '%') <if test="manufactory != null and manufactory != ''">
</if> AND basic_products.manufactory like concat('%', #{manufactory}, '%')
<if test="manufactory != null and manufactory != ''"> </if>
AND basic_products.manufactory like concat('%', #{manufactory}, '%') <if test="startDate != null and startDate != ''">
</if> <![CDATA[
<if test="startDate != null and startDate !=''"> and DATE_FORMAT(pur_order.createTime, '%Y-%m-%d') >= #{startDate}
<![CDATA[ and DATE_FORMAT(pur_order.createTime,'%Y-%m-%d')>= #{startDate}]]> ]]>
</if> </if>
<if test="endDate != null and endDate !=''"> <if test="endDate != null and endDate != ''">
<![CDATA[ and DATE_FORMAT(pur_order.createTime,'%Y-%m-%d') <= #{endDate}]]> <![CDATA[
</if> and DATE_FORMAT(pur_order.createTime, '%Y-%m-%d') <= #{endDate}
and pur_order.status=3 ]]>
</where> </if>
and pur_order.status = 3
</where>
</select> </select>
</mapper> </mapper>

@ -435,3 +435,5 @@ CALL Pro_Temp_ColumnWork('io_code_temp', 'preInSpaceCode', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('io_code', 'preSpaceCode', 'varchar(255)', 1); CALL Pro_Temp_ColumnWork('io_code', 'preSpaceCode', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('io_code', 'preInSpaceCode', 'varchar(255)', 1); CALL Pro_Temp_ColumnWork('io_code', 'preInSpaceCode', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('pur_order_detail', 'price', 'decimal(10, 2)', 1);

Loading…
Cancel
Save