Forráskód Böngészése

发货结算表接口

jz.kai 1 éve
szülő
commit
11ae4e9ceb

+ 1 - 0
common/src/main/java/com/jpsoft/printing/modules/base/dao/StockDAO.java

@@ -18,4 +18,5 @@ public interface StockDAO {
 	List<Stock> search(Map<String,Object> searchParams,List<Sort> sortList);
 	BigDecimal getActualQuantity(String workId);
 	BigDecimal getRollQuantity(String workId);
+	List<Stock> findList(String workId);
 }

+ 1 - 0
common/src/main/java/com/jpsoft/printing/modules/base/dao/WorkDAO.java

@@ -19,4 +19,5 @@ public interface WorkDAO {
 	List<Work> search(Map<String,Object> searchParams,List<Sort> sortList);
 	String getSumVolume(String startDay, String endDay);
 	String getSumNumber(String startDay, String endDay);
+	List<Work> findList(String startDay, String endDay, String order);
 }

+ 1 - 1
common/src/main/java/com/jpsoft/printing/modules/base/entity/Stock.java

@@ -29,7 +29,7 @@ public class Stock {
         @ApiModelProperty(value = "瑕疵")
     private String flaw;
         @ApiModelProperty(value = "状态")
-    private Boolean status;
+    private Integer status;
         @ApiModelProperty(value = "删除标示")
     private Boolean delFlag;
         @ApiModelProperty(value = "创建人")

+ 1 - 0
common/src/main/java/com/jpsoft/printing/modules/base/service/StockService.java

@@ -17,4 +17,5 @@ public interface StockService {
 	Page<Stock> pageSearch(Map<String, Object> searchParams,int pageNum,int pageSize,boolean count,List<Sort> sortList);
 	BigDecimal getActualQuantity(String workId);
 	BigDecimal getRollQuantity(String workId);
+	List<Stock> findList(String workId);
 }

+ 1 - 0
common/src/main/java/com/jpsoft/printing/modules/base/service/WorkService.java

@@ -18,4 +18,5 @@ public interface WorkService {
 	Page<Work> pageSearch(Map<String, Object> searchParams,int pageNum,int pageSize,boolean count,List<Sort> sortList);
 	String getSumVolume(String startDay, String endDay);
 	String getSumNumber(String startDay, String endDay);
+	List<Work> findList(String startDay, String endDay, String order);
 }

+ 6 - 0
common/src/main/java/com/jpsoft/printing/modules/base/service/impl/StockServiceImpl.java

@@ -79,4 +79,10 @@ public class StockServiceImpl implements StockService {
 	public BigDecimal getRollQuantity(String workId) {
 		return stockDAO.getRollQuantity(workId);
 	}
+
+	@Override
+	public List<Stock> findList(String workId) {
+		// TODO Auto-generated method stub
+		return stockDAO.findList(workId);
+	}
 }

+ 6 - 0
common/src/main/java/com/jpsoft/printing/modules/base/service/impl/WorkServiceImpl.java

@@ -79,4 +79,10 @@ public class WorkServiceImpl implements WorkService {
 	public String getSumNumber(String startDay, String endDay) {
 		return workDAO.getSumNumber(startDay, endDay);
 	}
+
+	@Override
+	public List<Work> findList(String startDay, String endDay, String order) {
+		// TODO Auto-generated method stub
+		return workDAO.findList(startDay, endDay, order);
+	}
 }

+ 5 - 0
common/src/main/resources/mapper/base/Stock.xml

@@ -125,4 +125,9 @@ id_,work_id,machine_name,stock_number,length_,flaw_,status_,del_flag,create_by,c
 		where del_flag = 0
 		and work_id = #{0}
 	</select>
+	<select id="findList" parameterType="string" resultMap="StockMap">
+		SELECT * FROM base_stock
+		WHERE del_flag = 0
+		AND work_id = #{workId}
+	</select>
 </mapper>

+ 17 - 0
common/src/main/resources/mapper/base/Work.xml

@@ -196,4 +196,21 @@ id_,customer_id,name_,width_,number_,process_date,process_volume,process_remark,
 			AND create_time < #{endDay}
 		]]>
 	</select>
+	<select id="findList" parameterType="string" resultMap="WorkMap">
+		SELECT * FROM base_work
+		<where>
+			del_flag = 0
+			<if test="startDay != null">
+				AND create_time >= #{startDay}
+			</if>
+			<if test="endDay != null">
+				<![CDATA[
+				AND create_time < #{endDay}
+				]]>
+			</if>
+		</where>
+		<if test="order != null">
+			ORDER BY ${order}
+		</if>
+	</select>
 </mapper>

+ 93 - 0
web/src/main/java/com/jpsoft/printing/modules/ReportController.java

@@ -4,8 +4,12 @@ import com.jpsoft.printing.config.OSSConfig;
 import com.jpsoft.printing.modules.base.dto.YearSoaDTO;
 import com.jpsoft.printing.modules.base.entity.Account;
 import com.jpsoft.printing.modules.base.entity.Customer;
+import com.jpsoft.printing.modules.base.entity.Stock;
+import com.jpsoft.printing.modules.base.entity.Work;
 import com.jpsoft.printing.modules.base.service.AccountService;
 import com.jpsoft.printing.modules.base.service.CustomerService;
+import com.jpsoft.printing.modules.base.service.StockService;
+import com.jpsoft.printing.modules.base.service.WorkService;
 import com.jpsoft.printing.modules.common.dto.MessageResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -24,6 +28,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import java.io.*;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -36,6 +41,10 @@ public class ReportController {
     @Autowired
     private OSSConfig ossConfig;
     @Autowired
+    private WorkService workService;
+    @Autowired
+    private StockService stockService;
+    @Autowired
     private AccountService accountService;
     @Autowired
     private CustomerService customerService;
@@ -407,4 +416,88 @@ public class ReportController {
 
         return msgResult;
     }
+
+    @ApiOperation(value="发货结算表数据")
+    private Map dataFHJSB(String customerId, Date selectDate){
+        Map<String, Object> map = new HashMap<>();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(selectDate);
+        String dateStart = sdf.format(calendar.getTime());
+
+        calendar.add(Calendar.MONTH, 1);
+        String dateEnd = sdf.format(calendar.getTime());
+
+        Customer customer = customerService.get(customerId);
+
+        List<Map> mapList = new ArrayList<>();
+        List<Work> workList = workService.findList(dateStart, dateEnd, "create_time ASC");
+        for(Work work : workList){
+            Map<String, Object> accMap = new HashMap<>();
+
+            //账目
+            Account account = accountService.getByWorkId(work.getId());
+            if(account != null){
+                accMap.put("actualAmount", account.getActualAmount());//实数金额
+                accMap.put("clothAmount", account.getClothAmount());//坯布金额
+                accMap.put("rollAmount", account.getRollAmount());//力工金额
+                accMap.put("totalAmount", account.getTotalAmount());//总金额
+            }
+
+            //打卷
+            BigDecimal estimateQuantityM = new BigDecimal(0);
+            List<String> lengthList = new ArrayList<>();
+            List<String> shipmentList = new ArrayList<>();
+            List<Stock> stockList = stockService.findList(work.getId());
+            for(Stock stock : stockList){
+                lengthList.add(stock.getLength() + "m");
+                estimateQuantityM = estimateQuantityM.add(stock.getLength());
+                if(stock.getUpdateTime() != null && !shipmentList.contains(sdf.format(stock.getUpdateTime()))) {
+                    shipmentList.add(sdf.format(stock.getUpdateTime()));
+                }
+            }
+            BigDecimal estimateQuantityY = estimateQuantityM.divide(new BigDecimal("0.9144"), 0, RoundingMode.HALF_UP);
+
+            accMap.put("name", work.getName());//品种及规格
+            accMap.put("width", work.getWidth());//幅宽
+            accMap.put("number", work.getNumber());//编号
+            accMap.put("processDate", sdf.format(work.getProcessDate()));//投坯日
+            accMap.put("processVolume", work.getProcessVolume());//投坯数(米)
+            accMap.put("processRemark", work.getProcessRemark());//投坯卷数
+            accMap.put("processNumber", work.getProcessNumber());//投坯备注
+            accMap.put("ratio", work.getRatio());//伸长率
+            accMap.put("colour", work.getColour());//色泽
+            accMap.put("estimateQuantity", work.getEstimateQuantity());//应交成品数(米)
+            accMap.put("estimateRemark", work.getEstimateRemark());//应交成品数备注
+            accMap.put("shipment", String.join(",", shipmentList));//发货日
+            accMap.put("actualRemark", String.join("+", lengthList));//实交成品数-详情
+            accMap.put("estimateQuantityY", estimateQuantityY);//应交成品数(码)
+            accMap.put("estimateQuantityM", estimateQuantityM);//应交成品数(米)
+            accMap.put("unitPrice", work.getUnitPrice());//单价(元/米)
+            accMap.put("clothQuantity", estimateQuantityM.subtract(work.getEstimateQuantity()));//坯布数(米)
+            accMap.put("clothPrice", work.getClothPrice());//坯布单价(元/米)
+            accMap.put("remark", work.getRemark());//备注
+            mapList.add(accMap);
+        }
+
+        map.put("name", customer.getCompany());
+        map.put("date", dateStart.substring(0,4) + "年" + dateStart.substring(5,7) + "月");
+        map.put("list", customer.getCompany());
+
+        return map;
+    }
+
+    @ApiOperation(value="发货结算表")
+    @RequestMapping(value = "monthFHJSB",method = RequestMethod.POST)
+    public MessageResult monthFHJSB(String customerId, Date selectDate){
+        MessageResult msgResult = new MessageResult<>();
+
+        Map map = dataFHJSB(customerId, selectDate);
+
+        msgResult.setResult(true);
+        msgResult.setData(map);
+
+        return msgResult;
+    }
 }

+ 1 - 1
web/src/main/java/com/jpsoft/printing/modules/base/controller/StockController.java

@@ -273,7 +273,7 @@ public class StockController {
 
             for (String id : idList) {
                 Stock stock = stockService.get(id);
-                stock.setStatus(true);
+                stock.setStatus(2);
                 stock.setUpdateBy(subject);
                 stock.setUpdateTime(new Date());
 

BIN
web/src/main/resources/static/fhjsb.xls