Ver código fonte

手机端上传附件关联明细

Sun 3 anos atrás
pai
commit
a4b54ddcfe

+ 15 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/domain/TEnclosure.java

@@ -26,6 +26,12 @@ public class TEnclosure extends BaseEntity {
     private Long fPid;
 
     /**
+     * 来源id
+     */
+    @Excel(name = "来源id")
+    private Long srcId;
+
+    /**
      * 行号
      */
     @Excel(name = "行号")
@@ -82,6 +88,14 @@ public class TEnclosure extends BaseEntity {
         return fPid;
     }
 
+    public void setSrcId(Long srcId) {
+        this.srcId = srcId;
+    }
+
+    public Long getSrcId() {
+        return srcId;
+    }
+
     public void setfLineno(Long fLineno) {
         this.fLineno = fLineno;
     }
@@ -143,6 +157,7 @@ public class TEnclosure extends BaseEntity {
         return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                 .append("fId", getfId())
                 .append("fPid", getfPid())
+                .append("srcId", getSrcId())
                 .append("fLineno", getfLineno())
                 .append("fName", getfName())
                 .append("fDesc", getfDesc())

+ 22 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/mapper/TEnclosureMapper.java

@@ -76,4 +76,26 @@ public interface TEnclosureMapper extends BaseMapper<TEnclosure> {
      * @return
      */
     public List<TEnclosure> selectTEnclosureByPId(Long fPid);
+
+    /**
+     *  根据主表id查询对应附件信息
+     * @param fPid
+     * @return
+     */
+    public List<String> selectUrlByPId(Long fPid);
+
+    /**
+     *  根据主表id查询对应附件信息
+     * @param fPid
+     * @return
+     */
+    public List<TEnclosure> selectTEnclosureListByPId(Long fPid);
+
+    /**
+     *  根据来源id查询对应附件信息
+     * @param srcId
+     * @return
+     */
+    public List<TEnclosure> selectTEnclosureListBySrcId(Long srcId);
+
 }

+ 28 - 28
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -1748,12 +1748,17 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             tWarehousebillsitems.setUpdateBy(SecurityUtils.getUsername());
             tWarehousebillsitemsMapper.updateTWarehousebillsitems(tWarehousebillsitems);
         }
+
+        List<String> urlList = tEnclosureMapper.selectUrlByPId(tWarehousebillsitems.getfPid());
         tEnclosureMapper.deleteByFPid(tWarehousebillsitems.getfPid());
         if (StringUtils.isNotEmpty(attachs) && !"[]".equals(attachs)) {
             //  附件添加
             JSONArray jsonDrArray = JSONArray.parseArray(attachs);
             List<TEnclosure> tEnclosureList = JSONObject.parseArray(jsonDrArray.toJSONString(), TEnclosure.class);
             for (TEnclosure enclosure : tEnclosureList) {
+                if (!urlList.contains(enclosure.getfUrl())) {
+                    enclosure.setSrcId(tWarehousebillsitems.getfId());
+                }
                 enclosure.setfStatus("2");
                 enclosure.setCreateTime(new Date());
                 enclosure.setfPid(tWarehousebillsitems.getfPid());
@@ -2968,11 +2973,13 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         }
         map.put("item", itemMap);
         if (itemMap.containsKey("fPid") && StringUtils.isNotNull(itemMap.get("fPid"))) {
-            long fPid = Long.valueOf(String.valueOf(itemMap.get("fPid")));
+            long fPid = Long.parseLong(String.valueOf(itemMap.get("fPid")));
             TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(fPid);
             map.put("warehouseBills", tWarehouseBills);
             // 查询附件
-            map.put("enclosure", tEnclosureMapper.selectTEnclosureByPId(tWarehouseBills.getfId()));
+            List<TEnclosure> tEnclosures = tEnclosureMapper.selectTEnclosureListByPId(tWarehouseBills.getfId());
+            tEnclosures.addAll(tEnclosureMapper.selectTEnclosureListBySrcId(fId));
+            map.put("enclosure", tEnclosures);
         }
         return AjaxResult.success(map);
     }
@@ -3088,7 +3095,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             }
         }
         tWarehousebillsitems.setfChargedate(time);//仓储费计算日期
-        if (StringUtils.isNull(warehousebillsitems) || warehousebillsitems.getfBillstatus() != 30L) {
+        if (warehousebillsitems.getfBillstatus() != 30L) {
             return AjaxResult.error("请确认是该明细数据是否存在,或该明细数据状态异常");
         }
         TGoods goods = tGoodsMapper.selectTGoodsById(warehousebillsitems.getfGoodsid());
@@ -3163,12 +3170,17 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             // 添加状态log
             insertTWarehousebillsLog(tWarehousebillsitems, 40L);
         }
+
+        List<String> urlList = tEnclosureMapper.selectUrlByPId(tWarehousebillsitems.getfPid());
         tEnclosureMapper.deleteByFPid(warehouseBills.getfId());
         //  附件添加
         if (StringUtils.isNotEmpty(attachs) && !"[]".equals(attachs)) {
             JSONArray jsonDrArray = JSONArray.parseArray(attachs);
             List<TEnclosure> tEnclosureList = JSONObject.parseArray(jsonDrArray.toJSONString(), TEnclosure.class);
             for (TEnclosure enclosure : tEnclosureList) {
+                if (!urlList.contains(enclosure.getfUrl())) {
+                    enclosure.setSrcId(tWarehousebillsitems.getfId());
+                }
                 enclosure.setfStatus("6");
                 enclosure.setCreateTime(new Date());
                 enclosure.setfPid(warehouseBills.getfId());
@@ -3233,12 +3245,12 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         TWarehouseBills bills = tWarehouseBillsMapper.selectTWarehousebillsById(warehousebillsitems.getfPid());
         if (tWarehousebillsitems.getBsdate() != null && "0".equals(bills.getfChargetype())) {
             boolean fchargedate = this.getFchargedate(warehousebillsitems.getfPid(), tWarehousebillsitems.getBsdate());
-            if (fchargedate == false) {
+            if (!fchargedate) {
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return AjaxResult.error("入库日期不能小于最小仓储费计算日期");
             }
         }
-        Date time = new Date();
+        Date time;
         if (StringUtils.isNotEmpty(bills.getfChargetype()) && "0".equals(bills.getfChargetype())) {
             time = tWarehousebillsitemsMapper.selecMinBsDateByFPid(tWarehousebillsitems.getfPid());
             tWarehousebillsitems.setfChargedate(time);
@@ -3286,19 +3298,6 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         warehouseBills.setfNetweight(itemInFo.getfNetweight());
         warehouseBills.setfGrossweight(itemInFo.getfGrossweight());
         tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
-        tEnclosureMapper.deleteByFPid(warehouseBills.getfId());
-        //  附件添加
-        if (StringUtils.isNotEmpty(attachs) && !"[]".equals(attachs)) {
-            JSONArray jsonDrArray = JSONArray.parseArray(attachs);
-            List<TEnclosure> tEnclosureList = JSONObject.parseArray(jsonDrArray.toJSONString(), TEnclosure.class);
-            for (TEnclosure enclosure : tEnclosureList) {
-                enclosure.setfStatus("6");
-                enclosure.setCreateTime(new Date());
-                enclosure.setfPid(warehouseBills.getfId());
-                enclosure.setCreateBy(SecurityUtils.getUsername());
-                tEnclosureMapper.insertTEnclosure(enclosure);
-            }
-        }
         return AjaxResult.success();
     }
 
@@ -4506,25 +4505,26 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             storageFeesDto.setfGoodsid(fGoodsid);
             long fId = Long.parseLong(String.valueOf(item.get("fId")));
             // 累计计费天数
-            storageFeesDto.setEarlySumDays(DateUtils.getDateDay((Date) item.get("fChargedate"), (Date) item.get("fOriginalbilldate")));
+            storageFeesDto.setEarlySumDays(DateUtils.getDateDay((Date) item.get("fChargedate"), (Date) item.get("fOriginalbilldate")) - 1);
             // 库存天数
             long fInventoryDays;
             // 要计费天数
             long fBillingDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fOriginalbilldate"));
             if ("SJCK".equals(fBilltype)) {
-                fInventoryDays = DateUtils.getDateDay(fBsdate, (Date) item.get("fChargedate"));
-                fBillingDays = DateUtils.getDateDay((Date) item.get("fChargedate"), (Date) item.get("fOriginalbilldate"));
+                fInventoryDays = DateUtils.getDateDay(fBsdate, (Date) item.get("fOriginalbilldate"));
+                fBillingDays = DateUtils.getDateDay(fBsdate, (Date) item.get("fChargedate"));
                 storageFeesDto.setStartTime((Date) item.get("fChargedate"));
                 storageFeesDto.setEndTime(fBsdate);
             } else if (WarehouseTypeEnum.HQZY.getType().equals(fBilltype)) {
-                fInventoryDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), fBsdate);
-                storageFeesDto.setStartTime(fBsdate);
-                storageFeesDto.setEndTime(warehouseBills.getfBillingDeadline());
+                fInventoryDays = DateUtils.getDateDay(fBsdate, (Date) item.get("fOriginalbilldate"));
+                fBillingDays = DateUtils.getDateDay(fBsdate, (Date) item.get("fChargedate"));
+                storageFeesDto.setStartTime((Date) item.get("fChargedate"));
+                storageFeesDto.setEndTime(fBsdate);
             } else {
-                storageFeesDto.setStartTime((Date) item.get("fOriginalbilldate"));
-                storageFeesDto.setEndTime(warehouseBills.getfBillingDeadline());
-                fBillingDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fChargedate"));
                 fInventoryDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fOriginalbilldate"));
+                fBillingDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fChargedate"));
+                storageFeesDto.setStartTime((Date) item.get("fChargedate"));
+                storageFeesDto.setEndTime(warehouseBills.getfBillingDeadline());
             }
             if (fBillingDays <= 0) {
                 continue;
@@ -4533,7 +4533,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             storageFeesDto.setfMblno((String) item.get("fMblno"));
             // 赋值要计算的数量单位
             storageFeesDto.setfQty(new BigDecimal(String.valueOf(item.get("fQty"))));
-            storageFeesDto.setfVolumn(new BigDecimal(String.valueOf(item.get("fQty"))));
+            storageFeesDto.setfVolumn(new BigDecimal(String.valueOf(item.get("fVolumn"))));
             storageFeesDto.setfNetweight(new BigDecimal(String.valueOf(item.get("fNetweight"))));
             storageFeesDto.setfGrossweight(new BigDecimal(String.valueOf(item.get("fGrossweight"))));
             // 计算仓储费明细

+ 20 - 1
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TEnclosureMapper.xml

@@ -7,6 +7,7 @@
     <resultMap type="TEnclosure" id="TEnclosureResult">
         <result property="fId" column="f_id"/>
         <result property="fPid" column="f_pid"/>
+        <result property="srcId" column="src_id"/>
         <result property="fLineno" column="f_lineno"/>
         <result property="fName" column="f_name"/>
         <result property="fDesc" column="f_desc"/>
@@ -22,13 +23,14 @@
     </resultMap>
 
     <sql id="selectTEnclosureVo">
-        select f_id, f_pid, f_lineno, f_name, f_desc, f_url, f_type, f_status, del_flag, create_by, create_time, update_by, update_time, remark from t_enclosure
+        select f_id, f_pid, src_id, f_lineno, f_name, f_desc, f_url, f_type, f_status, del_flag, create_by, create_time, update_by, update_time, remark from t_enclosure
     </sql>
 
     <select id="selectTEnclosureList" parameterType="TEnclosure" resultMap="TEnclosureResult">
         <include refid="selectTEnclosureVo"/>
         <where>
             <if test="fPid != null ">and f_pid = #{fPid}</if>
+            <if test="srcId != null ">and src_id = #{srcId}</if>
             <if test="fLineno != null ">and f_lineno = #{fLineno}</if>
             <if test="fName != null  and fName != ''">and f_name like concat('%', #{fName}, '%')</if>
             <if test="fDesc != null  and fDesc != ''">and f_desc = #{fDesc}</if>
@@ -58,6 +60,7 @@
         insert into t_enclosure
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="fPid != null">f_pid,</if>
+            <if test="srcId != null">src_id,</if>
             <if test="fLineno != null">f_lineno,</if>
             <if test="fName != null and fName != ''">f_name,</if>
             <if test="fDesc != null and fDesc != ''">f_desc,</if>
@@ -72,6 +75,7 @@
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="fPid != null">#{fPid},</if>
+            <if test="srcId != null">#{srcId},</if>
             <if test="fLineno != null">#{fLineno},</if>
             <if test="fName != null and fName != ''">#{fName},</if>
             <if test="fDesc != null and fDesc != ''">#{fDesc},</if>
@@ -90,6 +94,7 @@
         update t_enclosure
         <trim prefix="SET" suffixOverrides=",">
             <if test="fPid != null">f_pid = #{fPid},</if>
+            <if test="srcId != null">src_id = #{srcId},</if>
             <if test="fLineno != null">f_lineno = #{fLineno},</if>
             <if test="fName != null and fName != ''">f_name = #{fName},</if>
             <if test="fDesc != null and fDesc != ''">f_desc = #{fDesc},</if>
@@ -120,4 +125,18 @@
         </foreach>
     </delete>
 
+    <select id="selectUrlByPId" parameterType="long" resultType="string">
+        select f_url from t_enclosure where f_pid = #{fPid} and src_id is null
+    </select>
+
+    <select id="selectTEnclosureListByPId" parameterType="long" resultMap="TEnclosureResult">
+        <include refid="selectTEnclosureVo"/>
+        where f_pid = #{fPid} and src_id is null
+    </select>
+
+    <select id="selectTEnclosureListBySrcId" parameterType="long" resultMap="TEnclosureResult">
+        <include refid="selectTEnclosureVo"/>
+        where src_id = #{srcId}
+    </select>
+
 </mapper>