zengtx 1 vuosi sitten
vanhempi
commit
9bf76cfae7

+ 2 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/capacity/entity/SyCapacityControl.java

@@ -32,9 +32,9 @@ public class SyCapacityControl implements Serializable {
     private static final long serialVersionUID = 1L;
 
 	/**主键*/
-	@TableId(type = IdType.INPUT)
+	@TableId(type = IdType.ASSIGN_ID)
     @ApiModelProperty(value = "主键")
-    private int id;
+    private String id;
 	/**供应商*/
 	@Excel(name = "供应商", width = 15)
     @ApiModelProperty(value = "供应商")

+ 78 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/cost/controller/SyCostAllocationController.java

@@ -22,6 +22,10 @@ import org.jeecg.modules.cost.service.*;
 import org.jeecg.modules.cost.vo.SyCostAllocationPage;
 import org.jeecg.modules.report.entity.FabricLoss;
 import org.jeecg.modules.report.entity.SyFabricLossReport;
+import org.jeecg.modules.report.mapper.FabricLossMapper;
+import org.jeecg.modules.report.service.IFabricLossService;
+import org.jeecg.modules.report.service.ISyFabricLossReportService;
+import org.jeecg.modules.system.controller.CommonController;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -66,6 +70,12 @@ public class SyCostAllocationController {
     private ISyCostAllocationShipdetailService syCostAllocationShipdetailService;
     @Autowired
     private ISyCostJsonService syCostJsonService;
+    @Autowired
+    private ISyFabricLossReportService syFabricLossReportService;
+    @Autowired
+    CommonController commonController;
+    @Autowired
+    private IFabricLossService fabricLossService;
 
     /**
      * 分页列表查询
@@ -108,6 +118,7 @@ public class SyCostAllocationController {
             List<SyCostJson> list = syCostAllocationService.queryByCostJson(plannum,0,1);
             if(list.size()>0){
                 syCostAllocation = JSON.parseObject(JSON.toJSONString(list.get(0).getCostInfo()), SyCostAllocation.class);
+                syCostAllocation.setAttachs(list.get(0).getAttachs());
                 Result.OK(syCostAllocation);
             }else {
                 syCostAllocation=syCostAllocationService.queryByPlanNum(plannum,type);
@@ -210,6 +221,18 @@ public class SyCostAllocationController {
         if(null==planNum||planNum.equals("")){
             return Result.error("单据计划号不能为空!!!");
         }
+        //如果面损表保存了,或者返回false,就让他保存,面损表没保存,并且返回true,就不能保存
+        //通过计划号查询面损表
+        QueryWrapper<SyFabricLossReport> fbaQueryWrapper = new QueryWrapper<>();
+        fbaQueryWrapper.eq("plan_code",json.getPlanNum());
+        List<SyFabricLossReport> list = syFabricLossReportService.list(fbaQueryWrapper);
+        //查询面损表接口
+        FabricLoss entity = fabricLossService.getFabricLossData(json.getPlanNum(),null);
+
+        if(list.size()==0 && entity.isSuccess() == true){
+            return Result.error("该计划号未查到面损表,不允许保存!");
+        }
+
         Result<T> result = syCostAllocationService.saveMain(planNum, json);
         return result;
     }
@@ -483,4 +506,59 @@ public class SyCostAllocationController {
         return result;
     }
 
+
+
+
+    @AutoLog(value = "附件上传直接保存到数据库")
+    @ApiOperation(value="附件上传直接保存到数据库", notes="附件上传直接保存到数据库")
+    @PostMapping(value = "/addFile")
+    public Result<String> addFile(HttpServletRequest request, HttpServletResponse response,
+                                  String code, String name){
+
+        Result<String> result = new Result<String>();
+
+        String fileName = commonController.upload(request,response).getMessage();
+        if(oConvertUtils.isEmpty(name)){
+            result.setMessage("没有获取到文件,上传失败!");
+            result.setResult("没有获取到文件,上传失败!");
+            result.setSuccess(false);
+            return result;
+        }
+        int i = syCostAllocationService.addFile(code,fileName);
+        if(i>0){
+            result.setMessage("上传成功!");
+            result.setResult(fileName);
+            result.setSuccess(true);
+        }else{
+            result.setMessage("上传失败!");
+            result.setResult(fileName);
+            result.setSuccess(false);
+        }
+
+        return result;
+    }
+
+
+    @AutoLog(value = "附件直接删除")
+    @ApiOperation(value="附件直接删除", notes="附件直接删除")
+    @DeleteMapping(value = "/deleteFile")
+    public Result<String> deleteFile(HttpServletRequest request, HttpServletResponse response,
+                                     FabricLoss fabricLoss){
+
+        Result<String> result = new Result<String>();
+
+        int i = syCostAllocationService.deleteFile(fabricLoss.getCode(),fabricLoss.getName());
+        if(i>0){
+            result.setMessage("删除成功!");
+            result.setResult(fabricLoss.getName());
+            result.setSuccess(true);
+        }else{
+            result.setMessage("删除成功!");
+            result.setResult(fabricLoss.getName());
+            result.setSuccess(false);
+        }
+
+        return result;
+    }
+
 }

+ 3 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/cost/entity/SyCostAllocation.java

@@ -207,4 +207,7 @@ public class SyCostAllocation implements Serializable {
     //表头备注
     private String memo;
 
+    //附件
+    private String attachs;
+
 }

+ 3 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/cost/entity/SyCostJson.java

@@ -98,4 +98,7 @@ public class SyCostJson implements Serializable {
     @ApiModelProperty(value = "状态")
     private String status;
 
+    @Excel(name = "附件", width = 15)
+    @ApiModelProperty(value = "附件")
+    private String attachs;
 }

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/cost/mapper/xml/SyCostAllocationAccidentMapper.xml

@@ -22,7 +22,7 @@
 			case when its.money_type='美元' then ifnull(it.total_money,0) end as amount,
 			case when its.money_type='人民币' then ifnull(it.total_money,0) end as amountrmb,
 			CONCAT_WS(',',it.responsibility_person1,it.responsibility_person2,it.responsibility_person3,it.responsibility_person4) as responsibilityPerson1,
-			it.accident_data,it.factory as accidentUndertaker,it.customer,it.style_number,its.plan_number,it.plan_personnel,
+			it.accident_data,it.responsibility_company as accidentUndertaker,it.customer,it.style_number,its.plan_number,it.plan_personnel,
 			it.business_people,it.garment_sales_order,material,it.quality_control,finance_remark
 		from incident_ticket it
 		join incident_ticket_children its on it.id=its.incident_ticket_id

+ 6 - 6
jeecg-boot-module-system/src/main/java/org/jeecg/modules/cost/mapper/xml/SyCostAllocationFabricMapper.xml

@@ -39,7 +39,7 @@
 		join UFDATA_101_2021.dbo.Inventory oti on oti.cInvCode=ot.cInvCode
 		join UFDATA_101_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
 		WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser') and omi.cInvCcode like '19%' and om.cCode LIKE CONCAT(#{code},'%')
-		and (oti.cInvCcode like '03%' or oti.cInvCcode like '04%') and oti.cInvCCode != '0399' and oti.cInvCCode != '0499'
+		and (oti.cInvCcode like '03%' or oti.cInvCcode like '04%') and oti.cInvCCode != '0399' and (oti.cInvCCode != '0499' or oti.cInvName like '%棉%') and oti.cInvCCode != '0299'
 		GROUP BY oti.cInvName
 		) tab
 		left join
@@ -54,7 +54,7 @@
 		join UFDATA_101_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
 		WHERE om.cVerifier is not null and (om.cCloser is null or om.cCloser='asuser')
 		 and om.cPOID like CONCAT(#{code},'%')
-		) and (i.cInvCcode like '03%' or i.cInvCcode like '04%') and i.cInvCCode != '0399' and i.cInvCCode != '0499' and i.cInvCCode != '0299'
+		) and (i.cInvCcode like '03%' or i.cInvCcode like '04%') and i.cInvCCode != '0399' and (i.cInvCCode != '0499' or i.cInvName like '%棉%') and i.cInvCCode != '0299'
 		 and rs.cBatch like CONCAT(#{code},'%')
 		GROUP BY i.cInvName
 		)tab1
@@ -69,7 +69,7 @@
 		join UFDATA_101_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
 		WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser')
 		and omi.cInvCcode like '19%' and om.cCode like CONCAT(#{code},'%')
-		) and (i.cInvCcode like '03%' or i.cInvCcode like '04%') and i.cInvCCode != '0399' and i.cInvCCode != '0499' and i.cInvCCode != '0299'
+		) and (i.cInvCcode like '03%' or i.cInvCcode like '04%') and i.cInvCCode != '0399' and (i.cInvCCode != '0499' or i.cInvName like '%棉%') and i.cInvCCode != '0299'
 		 and rs.cBatch like CONCAT(#{code},'%')
 		GROUP BY i.cInvName
 		)tab2 on tab2.cInvName=tab1.cInvName and tab2.cBatch=tab1.cBatch
@@ -100,7 +100,7 @@
 		join UFDATA_103_2021.dbo.Inventory oti on oti.cInvCode=ot.cInvCode
 		join UFDATA_103_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
 		WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser') and omi.cInvCcode like '19%' and om.cCode LIKE CONCAT(#{code},'%')
-		and (oti.cInvCcode like '03%' or oti.cInvCcode like '04%') and oti.cInvCCode != '0399' and oti.cInvCCode != '0499'
+		and (oti.cInvCcode like '03%' or oti.cInvCcode like '04%') and oti.cInvCCode != '0399' and (oti.cInvCCode != '0499' or oti.cInvName like '%棉%') and oti.cInvCCode != '0299'
 		GROUP BY oti.cInvName
 		) tab
 		left join
@@ -115,7 +115,7 @@
 		join UFDATA_101_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
 		WHERE om.cVerifier is not null and (om.cCloser is null or om.cCloser='asuser')
 		 and om.cPOID like CONCAT(#{code},'%')
-		) and (i.cInvCcode like '03%' or i.cInvCcode like '04%') and i.cInvCCode != '0399' and i.cInvCCode != '0499' and i.cInvCCode != '0299' and rs.cBatch like CONCAT(#{code},'%')
+		) and (i.cInvCcode like '03%' or i.cInvCcode like '04%') and i.cInvCCode != '0399' and (i.cInvCCode != '0499' or i.cInvName like '%棉%') and i.cInvCCode != '0299' and rs.cBatch like CONCAT(#{code},'%')
 		GROUP BY i.cInvName
 		)tab1
 		right join
@@ -129,7 +129,7 @@
 		join UFDATA_103_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
 		WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser')
 		and omi.cInvCcode like '19%' and om.cCode like CONCAT(#{code},'%')
-		) and (i.cInvCcode like '03%' or i.cInvCcode like '04%') and i.cInvCCode != '0399' and i.cInvCCode != '0499' and i.cInvCCode != '0299'
+		) and (i.cInvCcode like '03%' or i.cInvCcode like '04%') and i.cInvCCode != '0399' and (i.cInvCCode != '0499' or i.cInvName like '%棉%') and i.cInvCCode != '0299'
 		and rs.cBatch like CONCAT(#{code},'%')
 		GROUP BY i.cInvName
 		)tab2 on tab2.cInvName=tab1.cInvName and tab2.cBatch=tab1.cBatch

+ 161 - 113
jeecg-boot-module-system/src/main/java/org/jeecg/modules/cost/mapper/xml/SyCostAllocationIngredientMapper.xml

@@ -17,6 +17,7 @@
 	</select>
 
 	<select id="queryByCostIngredient" resultType="org.jeecg.modules.cost.entity.SyCostAllocationIngredient">
+
 		select tab.*,isnull(tab1.purchaseQuantity,0) as purchaseQuantity,
 		case when isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0) <![CDATA[<=]]> 0 then 0
 		else isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0) end
@@ -24,142 +25,189 @@
 		case when isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0) <![CDATA[<=]]> 0 then isnull(tab1.purchaseQuantity,0)-tab.usageQuantity
 		else (isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0))+isnull(tab1.purchaseQuantity,0)-tab.usageQuantity end
 		as ingredientsRemainingQuantity,
-				(tab1.purchaseQuantity-tab.usageQuantity)/tab1.purchaseQuantity as loss,
-				case when isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0) <![CDATA[<=]]> 0 then 0
-				else (isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0))*tab.cost end as transferCost
-		from 
+		(tab1.purchaseQuantity-tab.usageQuantity)/tab1.purchaseQuantity as loss,
+		case when isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0) <![CDATA[<=]]> 0 then 0
+		else (isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0))*tab.cost end as transferCost
+		from
 		(
-				select oti.cInvName as goodsName,max(ot.iUnitQuantity) as dosage,sum(ot.iSendQTY) as usageQuantity 
-				 ,sum(pb.rmbAmount) as rmbAmount,sum(pb.usdAmount) as usdAmount,sum(pb.priceExcludingtax) as priceExcludingtax,max(pb.iCost) as cost,max(v.cVenAbbName) as supper
-				from UFDATA_103_2021.dbo.om_momain om
-				join UFDATA_103_2021.dbo.OM_MODetails od on om.moid=od.moid
-				join UFDATA_103_2021.dbo.OM_MOMaterials ot on ot.MoDetailsID=od.MODetailsID
-				JOIN UFDATA_103_2021.dbo.Vendor v ON om.cVenCode= v.cVenCode
-				join UFDATA_103_2021.dbo.Inventory oti on oti.cInvCode=ot.cInvCode
-				join UFDATA_103_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
-				left join (
-						SELECT bi.cInvCode,p.iorderdid,sum(bi.iSum) as rmbAmount,sum(bi.iOriSum) as usdAmount
-									,sum(bi.iMoney) as priceExcludingtax,max(bi.iCost) as iCost
-						from UFDATA_103_2021.dbo.PO_Podetails p      
-						join UFDATA_103_2021.dbo.PurBillVouchs bi  on bi.iPOsID=p.ID 
-						GROUP BY bi.cInvCode,p.iorderdid
-				 ) pb on pb.cInvCode=ot.cInvCode and pb.iorderdid=od.isosid
-				WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser') and omi.cInvCcode like '19%' 
-							and om.cCode LIKE CONCAT(#{code},'%') and (oti.cInvCcode like '05%' or oti.cInvCcode like '06%' 
-							or oti.cInvCcode like '07%' or oti.cInvCCode = '0399' or oti.cInvCCode = '0499')  
-				GROUP BY oti.cInvName
+		select t3.goodsName,sum(t3.dosage) as dosage,sum(t3.usageQuantity) as usageQuantity,max(t3.cVenAbbName) as supper,sum(t3.rmbAmount) as rmbAmount,sum(t3.usdAmount) as usdAmount,sum(t3.priceExcludingtax) as priceExcludingtax,sum(t3.iCost) as cost from (
+
+
+		select t1.goodsName,t1.dosage,t1.usageQuantity,t2.cVenAbbName,t2.rmbAmount,t2.usdAmount,t2.priceExcludingtax,t2.iCost from (select  ot.cInvCode,od.isosid,om.ccode,oti.cInvName as goodsName,sum(ot.iUnitQuantity) as dosage,sum(ot.iSendQTY) as usageQuantity
+
+		from UFDATA_103_2021.dbo.om_momain om
+		join UFDATA_103_2021.dbo.OM_MODetails od on om.moid=od.moid
+		join UFDATA_103_2021.dbo.OM_MOMaterials ot on ot.MoDetailsID=od.MODetailsID
+		JOIN UFDATA_103_2021.dbo.Vendor v ON om.cVenCode= v.cVenCode
+		join UFDATA_103_2021.dbo.Inventory oti on oti.cInvCode=ot.cInvCode
+		join UFDATA_103_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
+
+		WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser') and omi.cInvCcode like '19%'
+		and om.cCode LIKE CONCAT(#{code},'%') and (oti.cInvCcode like '05%' or oti.cInvCcode like '06%'
+		or oti.cInvCcode like '07%' or oti.cInvCCode = '0399' or oti.cInvCCode = '0299' or oti.cInvCCode = '0499' and oti.cInvName not like '%棉%')
+		group by ot.cInvCode,od.isosid,om.ccode,oti.cInvName
+		) as t1,(select max(ven.cVenAbbName) as cVenAbbName,
+		bi.cInvCode,pod.iorderdid,sum(bi.iSum) as rmbAmount,sum(bi.iOriSum) as usdAmount
+		,sum(bi.iMoney) as priceExcludingtax,max(bi.iCost) as iCost
+		from UFDATA_103_2021.dbo.PO_Pomain pom
+		join UFDATA_103_2021.dbo.PO_Podetails pod on pod.POID  = pom.POID
+		join UFDATA_103_2021.dbo.HY_DZ_K7_SYNERGISMLOGDID hy on pod.id = hy.predid
+
+		join UFDATA_103_2021.dbo.PO_Podetails pd on pd.iorderdid=hy.did
+		join UFDATA_103_2021.dbo.PO_Pomain pm on pd.POID  = pm.POID
+		join UFDATA_103_2021.dbo.PurBillVouchs bi  on bi.iPOsID=pd.ID
+		join UFDATA_103_2021.dbo.PurBillVouch bm  on bm.PBVID=bi.PBVID
+		join UFDATA_103_2021.dbo.Vendor ven on bm.cVenCode = ven.cVenCode
+		join UFDATA_103_2021.dbo.Inventory oti on oti.cInvCode=pd.cInvCode
+		where pm.cVenCode != 'T010001' and pom.cVenCode = 'T010001'
+		GROUP BY bi.cInvCode,pod.iorderdid) as t2 where t1.cInvCode=t2.cInvCode and t2.iorderdid=t1.isosid
+		) t3  GROUP BY t3.goodsName
+
 		) tab
-		left join 
+		left join
 		(
-				select i.cInvName,sum(rs.iQuantity) as purchaseQuantity from UFDATA_103_2021.dbo.rdrecords01 rs
-				join UFDATA_103_2021.dbo.Inventory i on rs.cInvCode=i.cInvCode
-				where iordercode in (
-						select od.csocode
-						from UFDATA_103_2021.dbo.PO_POmain om
-						join UFDATA_103_2021.dbo.PO_PODetails od on om.POID=od.POID
-						join UFDATA_103_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
-						WHERE om.cVerifier is not null and (om.cCloser is null or om.cCloser='asuser')
-									 and om.cPOID like CONCAT(#{code},'%')
-				) and (i.cInvCcode like '05%' or i.cInvCcode like '06%' or i.cInvCcode like '07%'
-						or i.cInvCCode = '0399' or i.cInvCCode = '0499' or i.cInvCCode = '0299') and rs.cBatch like CONCAT(#{code},'%')
-				GROUP BY i.cInvName
+		select i.cInvName,sum(rs.iQuantity) as purchaseQuantity from UFDATA_103_2021.dbo.rdrecords01 rs
+		join UFDATA_103_2021.dbo.Inventory i on rs.cInvCode=i.cInvCode
+		where iordercode in (
+		select od.csocode
+		from UFDATA_103_2021.dbo.PO_POmain om
+		join UFDATA_103_2021.dbo.PO_PODetails od on om.POID=od.POID
+		join UFDATA_103_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
+		WHERE om.cVerifier is not null and (om.cCloser is null or om.cCloser='asuser')
+		and om.cPOID LIKE CONCAT(#{code},'%')
+		) and (i.cInvCcode like '05%' or i.cInvCcode like '06%' or i.cInvCcode like '07%'
+		or i.cInvCCode = '0399' or i.cInvCCode = '0499' and i.cInvName not like '%棉%'  or i.cInvCCode = '0299')
+		GROUP BY i.cInvName
 		)tab1 on tab1.cInvName=tab.goodsName
-		left join 
+		left join
 		(
-				select i.cInvName,sum(rs.iQuantity) as jian from UFDATA_103_2021.dbo.rdrecords11 rs
-				join UFDATA_103_2021.dbo.Inventory i on rs.cInvCode=i.cInvCode
-				where iordercode in (
-						select distinct od.csocode
-						from UFDATA_103_2021.dbo.om_momain om  
-						join UFDATA_103_2021.dbo.OM_MODetails od on om.moid=od.moid
-						join UFDATA_103_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
-						WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser') 
-									and omi.cInvCcode like '19%' and om.cCode like CONCAT(#{code},'%')
-				) and (i.cInvCcode like '05%' or i.cInvCcode like '06%' or i.cInvCcode like '07%' 
-						or i.cInvCCode = '0399' or i.cInvCCode = '0499' or i.cInvCCode = '0299') and rs.cBatch like CONCAT(#{code},'%')
-				GROUP BY i.cInvName--,rs.cBatch
+		select i.cInvName,sum(rs.iQuantity) as jian from UFDATA_103_2021.dbo.rdrecords11 rs
+		join UFDATA_103_2021.dbo.Inventory i on rs.cInvCode=i.cInvCode
+		where iordercode in (
+		select distinct od.csocode
+		from UFDATA_103_2021.dbo.om_momain om
+		join UFDATA_103_2021.dbo.OM_MODetails od on om.moid=od.moid
+		join UFDATA_103_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
+		WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser')
+		and omi.cInvCcode like '19%' and om.cCode LIKE CONCAT(#{code},'%')
+		) and (i.cInvCcode like '05%' or i.cInvCcode like '06%' or i.cInvCcode like '07%'
+		or i.cInvCCode = '0399' or i.cInvCCode = '0499' and i.cInvName not like '%棉%' or i.cInvCCode = '0299') and rs.cBatch LIKE CONCAT(#{code},'%')
+		GROUP BY i.cInvName--,rs.cBatch
 		)tab2 on tab2.cInvName=tab.goodsName
 
 		union all
 
+
+
 		select tab.*,isnull(tab1.purchaseQuantity,0) as purchaseQuantity,
-				case when isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0) <![CDATA[<=]]> 0 then 0
-				else isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0) end
-				as ingredientsTransferQuantity,
-				case when isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0) <![CDATA[<=]]> 0 then isnull(tab1.purchaseQuantity,0)-tab.usageQuantity
+		case when isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0) <![CDATA[<=]]> 0 then 0
+		else isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0) end
+		as ingredientsTransferQuantity,
+		case when isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0) <![CDATA[<=]]> 0 then isnull(tab1.purchaseQuantity,0)-tab.usageQuantity
 		else (isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0))+isnull(tab1.purchaseQuantity,0)-tab.usageQuantity end
 		as ingredientsRemainingQuantity,
-				(tab1.purchaseQuantity-tab.usageQuantity)/tab1.purchaseQuantity as loss,case when isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0) <![CDATA[<=]]> 0 then 0
-				else (isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0))*tab.cost end as transferCost
+		(tab1.purchaseQuantity-tab.usageQuantity)/tab1.purchaseQuantity as loss,case when isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0) <![CDATA[<=]]> 0 then 0
+		else (isnull(tab2.jian,0)-isnull(tab1.purchaseQuantity,0))*tab.cost end as transferCost
 		from
 		(
-				select oti.cInvName as goodsName,max(ot.iUnitQuantity) as dosage,sum(ot.iSendQTY) as usageQuantity
-				 ,sum(pb.rmbAmount) as rmbAmount,sum(pb.usdAmount) as usdAmount,sum(pb.priceExcludingtax) as priceExcludingtax,max(pb.iCost) as cost,max(v.cVenAbbName) as supper
-				from UFDATA_101_2021.dbo.om_momain om
-				join UFDATA_101_2021.dbo.OM_MODetails od on om.moid=od.moid
-				join UFDATA_101_2021.dbo.OM_MOMaterials ot on ot.MoDetailsID=od.MODetailsID
-				JOIN UFDATA_101_2021.dbo.Vendor v ON om.cVenCode= v.cVenCode
-				join UFDATA_101_2021.dbo.Inventory oti on oti.cInvCode=ot.cInvCode
-				join UFDATA_101_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
-				left join (
-						SELECT p.cInvCode,p.iorderdid,sum(bi.iSum) as rmbAmount,sum(bi.iOriSum) as usdAmount
-									,sum(bi.iMoney) as priceExcludingtax,max(bi.iCost) as iCost
-						from UFDATA_101_2021.dbo.PO_Podetails p
-						join UFDATA_101_2021.dbo.PO_Pomain pm on p.POID  = pm.POID
-						join UFDATA_101_2021.dbo.PurBillVouchs bi  on bi.iPOsID=p.ID
-					  	where pm.cVenCode != 'T010001'
-						GROUP BY p.cInvCode,p.iorderdid
+		select t3.goodsName,sum(t3.dosage) as dosage,sum(t3.usageQuantity) as usageQuantity,max(t3.cVenAbbName) as supper,sum(t3.rmbAmount) as rmbAmount,sum(t3.usdAmount) as usdAmount,sum(t3.priceExcludingtax) as priceExcludingtax,sum(t3.iCost) as cost from (
 
-						union all
+		select t1.goodsName,t1.dosage,t1.usageQuantity,t2.cVenAbbName,t2.rmbAmount,t2.usdAmount,t2.priceExcludingtax,t2.iCost from (select  ot.cInvCode,od.isosid,om.ccode,oti.cInvName as goodsName,sum(ot.iUnitQuantity) as dosage,sum(ot.iSendQTY) as usageQuantity
+
+		from UFDATA_101_2021.dbo.om_momain om
+		join UFDATA_101_2021.dbo.OM_MODetails od on om.moid=od.moid
+		join UFDATA_101_2021.dbo.OM_MOMaterials ot on ot.MoDetailsID=od.MODetailsID
+		JOIN UFDATA_101_2021.dbo.Vendor v ON om.cVenCode= v.cVenCode
+		join UFDATA_101_2021.dbo.Inventory oti on oti.cInvCode=ot.cInvCode
+		join UFDATA_101_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
+
+		WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser') and omi.cInvCcode like '19%'
+		and om.cCode LIKE CONCAT(#{code},'%') and (oti.cInvCcode like '05%' or oti.cInvCcode like '06%'
+		or oti.cInvCcode like '07%' or oti.cInvCCode = '0399' or oti.cInvCCode = '0299' or oti.cInvCCode = '0499' and oti.cInvName not like '%棉%')
+		group by ot.cInvCode,od.isosid,om.ccode,oti.cInvName
+		) as t1,
+		(
+		select max(ven.cVenAbbName) as cVenAbbName,
+		bi.cInvCode,pod.iorderdid,sum(bi.iSum) as rmbAmount,sum(bi.iOriSum) as usdAmount
+		,sum(bi.iMoney) as priceExcludingtax,max(bi.iCost) as iCost
+		from UFDATA_101_2021.dbo.PO_Pomain pom
+		join UFDATA_101_2021.dbo.PO_Podetails pod on pod.POID  = pom.POID
+		join UFDATA_101_2021.dbo.PurBillVouchs bi  on bi.iPOsID=pod.ID
+		join UFDATA_101_2021.dbo.PurBillVouch bm  on bm.PBVID=bi.PBVID
+		join UFDATA_101_2021.dbo.Vendor ven on bm.cVenCode = ven.cVenCode
+		join UFDATA_101_2021.dbo.Inventory oti on oti.cInvCode=pod.cInvCode
+		where pom.cVenCode != 'T010001' and pom.cVenCode = 'T020001'
+		GROUP BY bi.cInvCode,pod.iorderdid) as t2 where t1.cInvCode=t2.cInvCode and t2.iorderdid=t1.isosid
+		) t3  GROUP BY t3.goodsName
+
+		union all
+
+		select t3.goodsName,sum(t3.dosage) as dosage,sum(t3.usageQuantity) as usageQuantity,max(t3.cVenAbbName) as supper,sum(t3.rmbAmount) as rmbAmount,sum(t3.usdAmount) as usdAmount,sum(t3.priceExcludingtax) as priceExcludingtax,sum(t3.iCost) as cost from (
+
+		select t1.goodsName,t1.dosage,t1.usageQuantity,t2.cVenAbbName,t2.rmbAmount,t2.usdAmount,t2.priceExcludingtax,t2.iCost from (select  ot.cInvCode,od.isosid,om.ccode,oti.cInvName as goodsName,sum(ot.iUnitQuantity) as dosage,sum(ot.iSendQTY) as usageQuantity
+
+		from UFDATA_101_2021.dbo.om_momain om
+		join UFDATA_101_2021.dbo.OM_MODetails od on om.moid=od.moid
+		join UFDATA_101_2021.dbo.OM_MOMaterials ot on ot.MoDetailsID=od.MODetailsID
+		JOIN UFDATA_101_2021.dbo.Vendor v ON om.cVenCode= v.cVenCode
+		join UFDATA_101_2021.dbo.Inventory oti on oti.cInvCode=ot.cInvCode
+		join UFDATA_101_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
+
+		WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser') and omi.cInvCcode like '19%'
+		and om.cCode LIKE CONCAT(#{code},'%') and (oti.cInvCcode like '05%' or oti.cInvCcode like '06%'
+		or oti.cInvCcode like '07%' or oti.cInvCCode = '0399' or oti.cInvCCode = '0299' or oti.cInvCCode = '0499' and oti.cInvName not like '%棉%')
+		group by ot.cInvCode,od.isosid,om.ccode,oti.cInvName
+		) as t1,
+		(
+		select max(ven.cVenAbbName) as cVenAbbName,
+		bi.cInvCode,pod.iorderdid,sum(bi.iSum) as rmbAmount,sum(bi.iOriSum) as usdAmount
+		,sum(bi.iMoney) as priceExcludingtax,max(bi.iCost) as iCost
+		from UFDATA_101_2021.dbo.PO_Pomain pom
+		join UFDATA_101_2021.dbo.PO_Podetails pod on pod.POID  = pom.POID
+		join UFDATA_103_2021.dbo.HY_DZ_K7_SYNERGISMLOGDID hy on pod.id = hy.predid
+
+		join UFDATA_102_2021.dbo.PO_Podetails pd on pd.iorderdid=hy.did
+		join UFDATA_102_2021.dbo.PO_Pomain pm on pd.POID  = pm.POID
+		join UFDATA_102_2021.dbo.PurBillVouchs bi  on bi.iPOsID=pd.ID
+		join UFDATA_102_2021.dbo.PurBillVouch bm  on bm.PBVID=bi.PBVID
+		join UFDATA_102_2021.dbo.Vendor ven on bm.cVenCode = ven.cVenCode
+		join UFDATA_102_2021.dbo.Inventory oti on oti.cInvCode=pd.cInvCode
+		where pm.cVenCode != 'T010001' and pom.cVenCode = 'T010001' and pom.cpoid LIKE CONCAT(#{code},'%')
+		GROUP BY bi.cInvCode,pod.iorderdid) as t2 where t1.cInvCode=t2.cInvCode and t2.iorderdid=t1.isosid
+		) t3  GROUP BY t3.goodsName
 
-						 select
-						bi.cInvCode,pod.iorderdid,sum(bi.iSum) as rmbAmount,sum(bi.iOriSum) as usdAmount
-						,sum(bi.iMoney) as priceExcludingtax,max(bi.iCost) as iCost
-						 from UFDATA_101_2021.dbo.PO_Pomain pom
-						 join UFDATA_101_2021.dbo.PO_Podetails pod on pod.POID  = pom.POID
-						 join UFDATA_102_2021.dbo.SO_SODetails sd on sd.cSOCode=pom.cpoid and sd.irowno=pod.ivouchrowno
-						 join UFDATA_102_2021.dbo.PO_Podetails pd on pd.iorderdid=sd.isosid
-						 join UFDATA_102_2021.dbo.PO_Pomain pm on pd.POID  = pm.POID
-						 join UFDATA_102_2021.dbo.PurBillVouchs bi  on bi.iPOsID=pd.ID
-						 join UFDATA_102_2021.dbo.Inventory oti on oti.cInvCode=pd.cInvCode
-						 where pm.cVenCode != 'T010001' and pom.cVenCode = 'T010001'
-						 GROUP BY bi.cInvCode,pod.iorderdid
-				 ) pb on pb.cInvCode=ot.cInvCode and pb.iorderdid=od.isosid
-				WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser') and omi.cInvCcode like '19%'
-							and om.cCode LIKE CONCAT(#{code},'%') and (oti.cInvCcode like '05%' or oti.cInvCcode like '06%'
-							or oti.cInvCcode like '07%' or oti.cInvCCode = '0399' or oti.cInvCCode = '0499')
-				GROUP BY oti.cInvName
 		) tab
 		left join
 		(
-				select i.cInvName,sum(rs.iQuantity) as purchaseQuantity from UFDATA_101_2021.dbo.rdrecords01 rs
-				join UFDATA_101_2021.dbo.Inventory i on rs.cInvCode=i.cInvCode
-				where iordercode in (
-						select od.csocode
-						from UFDATA_101_2021.dbo.PO_POmain om
-						join UFDATA_101_2021.dbo.PO_PODetails od on om.POID=od.POID
-						join UFDATA_101_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
-						WHERE om.cVerifier is not null and (om.cCloser is null or om.cCloser='asuser')
-									 and om.cPOID like CONCAT(#{code},'%')
-				) and (i.cInvCcode like '05%' or i.cInvCcode like '06%' or i.cInvCcode like '07%'
-						or i.cInvCCode = '0399' or i.cInvCCode = '0499' or i.cInvCCode = '0299') and rs.cBatch like CONCAT(#{code},'%')
-				GROUP BY i.cInvName
+		select i.cInvName,sum(rs.iQuantity) as purchaseQuantity from UFDATA_101_2021.dbo.rdrecords01 rs
+		join UFDATA_101_2021.dbo.Inventory i on rs.cInvCode=i.cInvCode
+		where iordercode in (
+		select od.csocode
+		from UFDATA_101_2021.dbo.PO_POmain om
+		join UFDATA_101_2021.dbo.PO_PODetails od on om.POID=od.POID
+		join UFDATA_101_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
+		WHERE om.cVerifier is not null and (om.cCloser is null or om.cCloser='asuser')
+		and om.cPOID LIKE CONCAT(#{code},'%')
+		) and (i.cInvCcode like '05%' or i.cInvCcode like '06%' or i.cInvCcode like '07%'
+		or i.cInvCCode = '0399' or i.cInvCCode = '0499' and i.cInvName not like '%棉%' or i.cInvCCode = '0299')
+		GROUP BY i.cInvName
 		)tab1 on tab1.cInvName=tab.goodsName
 		left join
 		(
-				select i.cInvName,sum(rs.iQuantity) as jian from UFDATA_101_2021.dbo.rdrecords11 rs
-				join UFDATA_101_2021.dbo.Inventory i on rs.cInvCode=i.cInvCode
-				where iordercode in (
-						select distinct od.csocode
-						from UFDATA_101_2021.dbo.om_momain om
-						join UFDATA_101_2021.dbo.OM_MODetails od on om.moid=od.moid
-						join UFDATA_101_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
-						WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser')
-									and omi.cInvCcode like '19%' and om.cCode like CONCAT(#{code},'%')
-				) and (i.cInvCcode like '05%' or i.cInvCcode like '06%' or i.cInvCcode like '07%'
-						or i.cInvCCode = '0399' or i.cInvCCode = '0499' or i.cInvCCode = '0299') and rs.cBatch like CONCAT(#{code},'%')
-				GROUP BY i.cInvName--,rs.cBatch
+		select i.cInvName,sum(rs.iQuantity) as jian from UFDATA_101_2021.dbo.rdrecords11 rs
+		join UFDATA_101_2021.dbo.Inventory i on rs.cInvCode=i.cInvCode
+		where iordercode in (
+		select distinct od.csocode
+		from UFDATA_101_2021.dbo.om_momain om
+		join UFDATA_101_2021.dbo.OM_MODetails od on om.moid=od.moid
+		join UFDATA_101_2021.dbo.Inventory omi on omi.cInvCode=od.cInvCode
+		WHERE om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser')
+		and omi.cInvCcode like '19%' and om.cCode LIKE CONCAT(#{code},'%')
+		) and (i.cInvCcode like '05%' or i.cInvCcode like '06%' or i.cInvCcode like '07%'
+		or i.cInvCCode = '0399' or i.cInvCCode = '0499' and i.cInvName not like '%棉%' or i.cInvCCode = '0299') and rs.cBatch LIKE CONCAT(#{code},'%')
+		GROUP BY i.cInvName
 		)tab2 on tab2.cInvName=tab.goodsName
+
 	</select>
 
 	<select id="queryTransferByIngredient" resultType="org.jeecg.modules.cost.entity.SyTransfer">

+ 6 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/cost/service/ISyCostAllocationService.java

@@ -50,4 +50,10 @@ public interface ISyCostAllocationService extends IService<SyCostAllocation> {
 
     List<SyCostJson> queryByCostJson(String planNum,
                                      Integer pageStart,Integer pageEnd);
+
+
+    //点击上传,直接保存到数据库
+    public int addFile(String code,String name);
+    //点击删除,直接删除数据库附件
+    public int deleteFile(String code,String name);
 }

+ 60 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/cost/service/impl/SyCostAllocationServiceImpl.java

@@ -75,6 +75,8 @@ public class SyCostAllocationServiceImpl extends ServiceImpl<SyCostAllocationMap
     private static ISenYuDataSourceOne senYuDataSourceOne;
     @Autowired
     private static ISenYuDataSourceThree senYuDataSourceThree;
+    @Autowired
+    private ISyCostJsonService syCostJsonService;
 
     public Result<T> saveMain(String plannum, SyCostAllocation json) {
         Result<T> result = new Result<>();
@@ -559,4 +561,62 @@ public class SyCostAllocationServiceImpl extends ServiceImpl<SyCostAllocationMap
         this.senYuDataSourceOne = applicationContext.getBean(ISenYuDataSourceOne.class);
         this.senYuDataSourceThree = applicationContext.getBean(ISenYuDataSourceThree.class);
     }
+
+
+    //点击上传,直接保存到数据库
+    @Override
+    public int addFile(String code, String name) {
+
+        StringBuffer sbu = new StringBuffer();
+
+        QueryWrapper<SyCostJson> fbaQueryWrapper = new QueryWrapper<>();
+        fbaQueryWrapper.eq("plan_num",code);
+        List<SyCostJson> list = syCostJsonService.list(fbaQueryWrapper);
+        if(list.size() == 0){
+            throw new JeecgBootException("为获取到计划号,请保存!");
+        }
+        SyCostJson entity = list.get(0);
+        if(oConvertUtils.isNotEmpty(entity.getAttachs())){
+            sbu.append(entity.getAttachs()+","+name);
+        }else{
+            sbu.append(name);
+        }
+        entity.setAttachs(sbu.toString());
+        syCostJsonService.updateById(entity);
+        return 1;
+    }
+
+    //点击删除,直接删除数据库附件
+    @Override
+    public int deleteFile(String code,String name) {
+
+        StringBuffer sbu = new StringBuffer();
+
+        QueryWrapper<SyCostJson> fbaQueryWrapper = new QueryWrapper<>();
+        fbaQueryWrapper.eq("plan_num",code);
+        List<SyCostJson> list = syCostJsonService.list(fbaQueryWrapper);
+        if(list.size() == 0){
+            throw new JeecgBootException("为获取到计划号,请查询!");
+        }
+        SyCostJson entity = list.get(0);
+        String split[] = entity.getAttachs().split(",");
+
+        if(split.length>1){
+            for(String str:split){
+                if(!str.equals(name)){
+                    sbu.append(str+",");
+                }
+            }
+            sbu.deleteCharAt(sbu.length() - 1);
+
+            entity.setAttachs(sbu.toString());
+        }else{
+            entity.setAttachs("");
+        }
+
+        syCostJsonService.updateById(entity);
+
+        return 1;
+
+    }
 }

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/syShippingOrder/mapper/xml/SyShippingOrderMapper.xml

@@ -166,7 +166,7 @@ on a.elements_Id = b.id
 left join sy_packing_list_tailoring_item c
 on a.tailoring_fabric_item_id = c.id
 where a.sy_shipping_order_item_id =#{id}
-group by c.group_id) t group by t.elementsId,t.styleNumber,t.smailPo,t.unitPrice order by t.supplier,t.styleNumber,t.smailPo,t.englishProductName,t.unitPrice
+group by c.group_id) t group by t.elementsId,t.styleNumber,t.smailPo,t.unitPrice order by t.styleNumber,t.smailPo desc
 
     </select>
 

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/report/service/impl/FabricLossServiceImpl.java

@@ -1918,7 +1918,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
 		// 转出成本,设置详情
 		costInvoiceDetailList = new ArrayList<>();
 		for (FabricPoOrderIn itemIn : allInList){
-			if (itemIn.getIPrice() == null){
+			if (itemIn.getIPrice() == null || itemIn.getIPrice().toString().equals("NaN")){
 				itemIn.setIPrice(0.0);
 			}
 			if (DoubleOperation.mul(itemIn.getIQuantity(),itemIn.getIPrice(), 2)!=0) {