Explorar el Código

Merge branch 'master' of http://47.100.3.209:3000/gdc/yiliangyiyun

ccjgmwz hace 3 años
padre
commit
590afc4c8e

+ 22 - 10
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/PaymentManagementController.java

@@ -14,6 +14,8 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * <p>
@@ -170,23 +172,31 @@ public class PaymentManagementController {
                         tmp.setPureWeight(tmp.getNetWeight());
                     }
 
-//                    tmp.setbz("<Bz>车号:" + paymentManagement.getCarNo() + "毛:" + paymentManagement.getGrossWeight() + " 皮:" + paymentManagement.getTare() + " 净:" + paymentManagement.getNetWeight() + " 纯:" + paymentManagement.getPureWeight() + " 应付:" + paymentManagement.getAmountIngPayable() + " 单号:" + m.replaceAll("").trim() + " ,★☆性质:贸易粮 形态:玉米堆(1)</Bz>\n"
-//                    );
+                    String regEx = "[^0-9]";
+                    Pattern p = Pattern.compile(regEx);
+                    Matcher m = p.matcher(tmp.getPaymentNo());
+                    //定义纯重和
                     Float weight = tmp.getPureWeight();
-//                    Float weight = tmp.getPureWeight();
+                    //定义应付金额和
+                    Double payable = tmp.getAmountIngPayable();
+                    //第一张发票
                     tmp.setPureWeight(weight/2);
-                    tmp.setAmountIngPayable(tmp.getAmountIngPayable()/2);
+                    tmp.setAmountIngPayable(payable/2);
+                    tmp.setRemarkss("车号:" + tmp.getCarNo() + "毛:" + tmp.getGrossWeight() + " 皮:" + tmp.getTare() + " 净:" + tmp.getNetWeight() + " 纯:" + weight + " 应付:" + payable + " 单号:" + m.replaceAll("").trim() + " ,★☆性质:贸易粮 形态:玉米堆(1)"
+                    );
+                    //第二张发票
                     PaymentManagement tmp1 = tmp;
                     tmp1.setPureWeight(weight - tmp.getPureWeight());
-                    tmp.setAmountIngPayable(tmp.getAmountIngPayable()/2);
-
-//                    tmp1.setbz("")
+                    tmp1.setAmountIngPayable(payable - tmp.getAmountIngPayable());
+                    tmp1.setRemarkss("车号:" + tmp1.getCarNo() + "毛:" + tmp1.getGrossWeight() + " 皮:" + tmp1.getTare() + " 净:" + tmp1.getNetWeight() + " 纯:" + weight + " 应付:" + payable + " 单号:" + m.replaceAll("").trim() + " ,★☆性质:贸易粮 形态:玉米堆(2)"
+                    );
                     list1.add(tmp);
                     list1.add(tmp1);
-
                 }
             }
-            paymentManagementList = list1;
+            if("2".equals(paymentManagement.getInvoiceFlag()) && paymentManagement.getRemarkss() != null){
+                paymentManagementList = list1;
+            }
         }
 
         for(int i=0;i<paymentManagementList.size();i++){
@@ -195,7 +205,9 @@ public class PaymentManagementController {
             paymentManagement.setIdentityAuthenticationInfo(iIdentityAuthenticationInfoService.selectById(paymentManagement.getIdentityId()));
             if("1".equals(paymentManagement.getInvoiceFlag())){
                 str.add(xmlUtil.readXml(paymentManagement));
-            }else {
+            }else if("2".equals(paymentManagement.getInvoiceFlag()) && paymentManagement.getRemarkss() != null){
+                str.add(xmlUtil.readsXml(paymentManagement));
+            }else if("2".equals(paymentManagement.getInvoiceFlag())){
                 str.add(xmlUtil.readXmls(paymentManagement));
             }
 

+ 6 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/PaymentManagement.java

@@ -314,6 +314,12 @@ public class PaymentManagement extends BaseModel<PaymentManagement> {
      */
     @TableField(exist = false)
     private String searchKeyWord;
+    /**
+     * 备注
+     */
+    @TableField(exist = false)
+    private String remarkss;
+
     @TableField(exist = false)
     private String codeUrl;
     /**

+ 122 - 1
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/util/XmlUtil.java

@@ -4,6 +4,9 @@ import com.aliyun.oss.OSSClient;
 import com.aliyun.oss.model.ObjectMetadata;
 import com.aliyun.oss.model.PutObjectRequest;
 import com.google.zxing.client.j2se.MatrixToImageWriter;
+import com.winsea.svc.base.base.entity.CommonStaff;
+import com.winsea.svc.base.base.service.ICommonStaffService;
+import com.winsea.svc.base.security.util.AuthSecurityUtils;
 import com.yh.saas.plugin.yiliangyiyun.entity.PaymentManagement;
 import lombok.Getter;
 import org.apache.http.entity.ContentType;
@@ -41,6 +44,8 @@ public class XmlUtil implements InitializingBean {
     @Getter
     @Value("${oss.endpoint.default:}")
     private String endpoint;
+    @Autowired
+    private ICommonStaffService staffService;
 
     private String host;
 
@@ -244,6 +249,9 @@ public class XmlUtil implements InitializingBean {
 
     public String readXmls(PaymentManagement paymentManagement) {
 
+        //获取用户名称
+        CommonStaff commonStaff = staffService.getInfo(AuthSecurityUtils.getCurrentUserId());
+
         String regEx = "[^0-9]";
         Pattern p = Pattern.compile(regEx);
         Matcher m = p.matcher(paymentManagement.getPaymentNo());
@@ -288,7 +296,7 @@ public class XmlUtil implements InitializingBean {
                 "\n" +
                 "<Bz>车号:" + paymentManagement.getCarNo() + "毛:" + paymentManagement.getGrossWeight() + " 皮:" + paymentManagement.getTare() + " 净:" + paymentManagement.getNetWeight() + " 纯:" + paymentManagement.getPureWeight() + " 应付:" + paymentManagement.getAmountIngPayable() + " 单号:" + m.replaceAll("").trim() + " ,★☆性质:贸易粮 形态:玉米堆</Bz>\n" +
                 "\n" +
-                "<Fhr>" + paymentManagement.getSettlementClerk() + "</Fhr>\n" +
+                "<Fhr>" + commonStaff.getStaffName() + "</Fhr>\n" +
                 "\n" +
                 "<Skr/>\n" +
                 "\n" +
@@ -352,6 +360,119 @@ public class XmlUtil implements InitializingBean {
         return "NG";
     }
 
+    public String readsXml(PaymentManagement paymentManagement) {
+
+        //获取用户名称
+        CommonStaff commonStaff = staffService.getInfo(AuthSecurityUtils.getCurrentUserId());
+
+        String regEx = "[^0-9]";
+        Pattern p = Pattern.compile(regEx);
+        Matcher m = p.matcher(paymentManagement.getPaymentNo());
+        String number = m.replaceAll("").trim();
+        Float weight = paymentManagement.getPureWeight();
+        Double as = paymentManagement.getAmountIngPayable()/weight * 100;
+        String goodsName = paymentManagement.getGoodsName();
+        if(paymentManagement.getGoodsName().equals("玉米(潮粮)")){
+//            paymentManagement.setGoodsName("玉米");
+            goodsName = "玉米";
+            weight = paymentManagement.getPureWeight();
+        }
+        if(paymentManagement.getPureWeight() == null){
+            paymentManagement.setPureWeight(paymentManagement.getNetWeight());
+        }
+        String s = "<?xml version=\"1.0\" encoding=\"GBK\"?>\n" +
+                "\n" +
+                "<Kp>\n" +
+                "\n" +
+                "<Version>2.0</Version>\n" +
+                "\n" +
+                "\n" +
+                "<Fpxx>\n" +
+                "\n" +
+                "<Zsl>1</Zsl>\n" +
+                "\n" +
+                "\n" +
+                "<Fpsj>\n" +
+                "\n" +
+                "\n" +
+                "<Fp>\n" +
+                "\n" +
+                "<Djh>" + number.substring(4) + "</Djh>\n" +
+                "\n" +
+                "<Gfmc>" + paymentManagement.getIdentityAuthenticationInfo().getCustomerName() + "</Gfmc>\n" +
+                "\n" +
+                "<Gfsh>" + paymentManagement.getIdentityAuthenticationInfo().getCustomerNumberCard() + "</Gfsh>\n" +
+                "\n" +
+                "<Gfyhzh>" + paymentManagement.getIdentityAuthenticationInfo().getBankDeposit()+paymentManagement.getIdentityAuthenticationInfo().getBankCard() + "</Gfyhzh>\n" +
+                "\n" +
+                "<Gfdzdh>" + paymentManagement.getIdentityAuthenticationInfo().getCompAddress() + "</Gfdzdh>\n" +
+                "\n" +
+                "<Bz>" + paymentManagement.getRemarkss() + "</Bz>\n" +
+                "\n" +
+                "<Fhr>" + commonStaff.getStaffName() + "</Fhr>\n" +
+                "\n" +
+                "<Skr/>\n" +
+                "\n" +
+                "<Spbmbbh>39.0</Spbmbbh>\n" +
+                "\n" +
+                "<Hsbz>0</Hsbz>\n" +
+                "\n" +
+                "\n" +
+                "<Sgbz>02</Sgbz>\n" +
+                "\n" +
+                "<Spxx>\n" +
+                "\n" +
+                "\n" +
+                "<Sph>\n" +
+                "\n" +
+                "<Xh>1</Xh>\n" +
+                "\n" +
+                "<Spmc>" + goodsName + "</Spmc>\n" +
+                "\n" +
+                "<Ggxh>" + paymentManagement.getGrade() + "</Ggxh>\n" +
+                "\n" +
+                "<Jldw>公斤</Jldw>\n" +
+                "\n" +
+                "<Spbm>1010101030000000000</Spbm>\n" +
+                "\n" +
+                "<Qyspbm/>\n" +
+                "\n" +
+                "<Syyhzcbz>0</Syyhzcbz>\n" +
+                "\n" +
+                "<Lslbz>1</Lslbz>\n" +
+                "\n" +
+                "<Yhzcsm/>\n" +
+                "\n" +
+                "<Dj>"+ paymentManagement.getTidalGrainPrice() +"</Dj>\n" +
+                "\n" +
+                "<Sl>" + weight + "</Sl>\n" +
+                "\n" +
+                "<Je>" + paymentManagement.getAmountIngPayable() + "</Je>\n" +
+                "\n" +
+                "<Slv>0</Slv>\n" +
+                "\n" +
+                "<Se>0</Se>\n" +
+                "\n" +
+                "</Sph>\n" +
+                "\n" +
+                "</Spxx>\n" +
+                "\n" +
+                "</Fp>\n" +
+                "\n" +
+                "</Fpsj>\n" +
+                "\n" +
+                "</Fpxx>\n" +
+                "\n" +
+                "</Kp>";
+        try {
+            String returnFile = strChangeXMLs(s, paymentManagement.getId());
+            return returnFile;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return "NG";
+    }
+
 
 
 //    public static void main(String args[]){