From 83c2b6cbf12ed3308eb875f517f2a1ed53d2dc9e Mon Sep 17 00:00:00 2001 From: jiangshuang <jswswws@163.com> Date: 星期五, 25 十月 2024 15:12:37 +0800 Subject: [PATCH] CRM>分单系统销售退货单同步 --- JavaSource/com/mandi/fendan/service/SaleBackOrderService.java | 8 JavaSource/com/mandi/common/XmlUtils.java | 159 +++++++++ JavaSource/com/mandi/fendan/mapper/SaleReturnMapper.java | 21 + JavaSource/com/mandi/fendan/persist/SalesReturn.java | 140 ++++++++ JavaSource/com/mandi/fendan/service/SaleReturnService.java | 13 JavaSource/com/mandi/fendan/service/impl/SaleReturnServiceImpl.java | 36 ++ JavaSource/com/mandi/fendan/mapper/SaleBackOrderMapper.java | 22 + JavaSource/com/mandi/fendan/mapper/xmls/SaleBackOrderMapper.xml | 27 + JavaSource/com/mandi/fendan/mapper/xmls/SaleReturnMapper.xml | 32 ++ JavaSource/com/mandi/fendan/controller/SaleBackOrderController.java | 139 ++++++++ JavaSource/com/mandi/fendan/persist/SaleBackOrder.java | 131 ++++++++ JavaSource/com/mandi/fendan/service/impl/SaleBackOrderServiceImpl.java | 189 +++++++++++ 12 files changed, 917 insertions(+), 0 deletions(-) diff --git a/JavaSource/com/mandi/common/XmlUtils.java b/JavaSource/com/mandi/common/XmlUtils.java new file mode 100644 index 0000000..f879e61 --- /dev/null +++ b/JavaSource/com/mandi/common/XmlUtils.java @@ -0,0 +1,159 @@ +/** + * Project Name:pay-protocol + * File Name:Xml.java + * Package Name:cn.swiftpass.pay.protocol + * Date:2014-8-10涓嬪崍10:48:21 + * +*/ + +package com.mandi.common; + +import org.dom4j.Document; +import org.dom4j.Element; +import org.dom4j.io.SAXReader; +import org.xml.sax.InputSource; + +import javax.servlet.ServletInputStream; +import javax.servlet.http.HttpServletRequest; +import java.io.*; +import java.util.*; + +/** + * ClassName:Xml + * Function: XML鐨勫伐鍏锋柟娉� + * Date: 2014-8-10 涓嬪崍10:48:21 + * @author + */ +@SuppressWarnings({"rawtypes","unchecked"}) +public class XmlUtils { + + /** <涓�鍙ヨ瘽鍔熻兘绠�杩�> + * <鍔熻兘璇︾粏鎻忚堪>request杞瓧绗︿覆 + * @param request + * @return + * @see [绫汇�佺被#鏂规硶銆佺被#鎴愬憳] + */ + public static String parseRequst(HttpServletRequest request){ + String body = ""; + try { + ServletInputStream inputStream = request.getInputStream(); + BufferedReader br = new BufferedReader(new InputStreamReader(inputStream,"utf-8")); + while(true){ + String info = br.readLine(); + if(info == null){ + break; + } + if(body == null || "".equals(body)){ + body = info; + }else{ + body += info; + } + } + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return body; + } + + public static String parseXML(SortedMap<String, String> parameters) { + StringBuffer sb = new StringBuffer(); + sb.append("<xml>"); + Set es = parameters.entrySet(); + Iterator it = es.iterator(); + while (it.hasNext()) { + Map.Entry entry = (Map.Entry)it.next(); + String k = (String)entry.getKey(); + String v = (String)entry.getValue(); + if (null != v && !"".equals(v) && !"appkey".equals(k)) { + sb.append("<" + k + ">" + parameters.get(k) + "</" + k + ">\n"); + } + } + sb.append("</xml>"); + return sb.toString(); + } + + /** + * 浠巖equest涓幏寰楀弬鏁癕ap锛屽苟杩斿洖鍙鐨凪ap + * + * @param request + * @return + */ + public static SortedMap getParameterMap(HttpServletRequest request) { + // 鍙傛暟Map + Map properties = request.getParameterMap(); + // 杩斿洖鍊糓ap + SortedMap returnMap = new TreeMap(); + Iterator entries = properties.entrySet().iterator(); + Map.Entry entry; + String name = ""; + String value = ""; + while (entries.hasNext()) { + entry = (Map.Entry) entries.next(); + name = (String) entry.getKey(); + Object valueObj = entry.getValue(); + if(null == valueObj){ + value = ""; + }else if(valueObj instanceof String[]){ + String[] values = (String[])valueObj; + for(int i=0;i<values.length;i++){ + value = values[i] + ","; + } + value = value.substring(0, value.length()-1); + }else{ + value = valueObj.toString(); + } + returnMap.put(name, value.trim()); + } + returnMap.remove("method"); + return returnMap; + } + + /** + * 杞琗MLmap + * @author + * @param xmlBytes + * @param charset + * @return + * @throws Exception + */ + public static Map<String, String> toMap(byte[] xmlBytes,String charset) throws Exception{ + SAXReader reader = new SAXReader(false); + InputSource source = new InputSource(new ByteArrayInputStream(xmlBytes)); + source.setEncoding(charset); + Document doc = reader.read(source); + Map<String, String> params = XmlUtils.toMap(doc.getRootElement()); + return params; + } + + /** + * 杞琈AP + * @author + * @param element + * @return + */ + public static Map<String, String> toMap(Element element){ + Map<String, String> rest = new HashMap<String, String>(); + List<Element> els = element.elements(); + for(Element el : els){ + rest.put(el.getName().toLowerCase(), el.getText()); + } + return rest; + } + + public static String toXml(Map<String, String> params){ + StringBuilder buf = new StringBuilder(); + List<String> keys = new ArrayList<String>(params.keySet()); + Collections.sort(keys); + buf.append("<xml>"); + for(String key : keys){ + buf.append("<").append(key).append(">"); + buf.append("<![CDATA[").append(params.get(key)).append("]]>"); + buf.append("</").append(key).append(">\n"); + } + buf.append("</xml>"); + return buf.toString(); + } +} + diff --git a/JavaSource/com/mandi/fendan/controller/SaleBackOrderController.java b/JavaSource/com/mandi/fendan/controller/SaleBackOrderController.java new file mode 100644 index 0000000..1aeb8df --- /dev/null +++ b/JavaSource/com/mandi/fendan/controller/SaleBackOrderController.java @@ -0,0 +1,139 @@ +package com.mandi.fendan.controller; + +import com.mandi.common.XmlUtils; +import com.mandi.fendan.persist.SaleBackOrder; +import com.mandi.fendan.persist.SalesReturn; +import com.mandi.fendan.service.SaleBackOrderService; +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; +import org.json.JSONArray; +import org.json.JSONObject; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; + + + +@RestController +@RequestMapping(value="/api/saleBackOrder",method={RequestMethod.GET,RequestMethod.POST}) +public class SaleBackOrderController { + + private Logger log=Logger.getLogger(SaleBackOrderController.class); + @Resource + private SaleBackOrderService saleBackOrderService; + + @RequestMapping(value = "/receive.htm", method = {RequestMethod.POST,RequestMethod.GET }) +// public void insertSaleBackOrder(@RequestBody SaleBackOrder saleBackOrder){ + public void insertSaleBackOrder(HttpServletRequest req, HttpServletResponse resp){ + try { + String strInfo = XmlUtils.parseRequst(req); + if(StringUtils.isNotBlank(strInfo)){ + JSONObject jsonObject = new JSONObject(strInfo); + SaleBackOrder convert = convert(jsonObject); + saleBackOrderService.saveOrUpdateOrDelete(convert); + } + } catch (Exception e) { + e.printStackTrace(); + } + + + } + private SaleBackOrder convert(JSONObject jsonObject) throws Exception { + SaleBackOrder convert = new SaleBackOrder(); + if (StringUtils.isNotBlank(jsonObject.getString("newSalesId"))) { + convert.setNewSalesId(jsonObject.getString("newSalesId")); + } + if (StringUtils.isNotBlank(jsonObject.getString("docNum"))) { + convert.setDocNum(jsonObject.getString("docNum")); + } + if (StringUtils.isNotBlank(jsonObject.getString("docTime"))) { + convert.setDocTime(jsonObject.getString("docTime")); + } + if (StringUtils.isNotBlank(jsonObject.getString("newAccountNo"))) { + convert.setNewAccountNo(jsonObject.getString("newAccountNo")); + } + if (StringUtils.isNotBlank(jsonObject.getString("createdBy"))) { + convert.setCreatedBy(jsonObject.getString("createdBy")); + } + if (StringUtils.isNotBlank(jsonObject.getString("ncDepCode"))) { + convert.setNcDepCode(jsonObject.getString("ncDepCode")); + } + if (StringUtils.isNotBlank(jsonObject.getString("userCode"))) { + convert.setUserCode(jsonObject.getString("userCode")); + } + if (StringUtils.isNotBlank(jsonObject.getString("invoiceNum"))) { + convert.setInvoiceNum(jsonObject.getString("invoiceNum")); + } + if (StringUtils.isNotBlank(jsonObject.getString("docRemark"))) { + convert.setDocRemark(jsonObject.getString("docRemark")); + } + if (StringUtils.isNotBlank(jsonObject.getString("rcDepCode"))) { + convert.setRcDepCode(jsonObject.getString("rcDepCode")); + } + if (StringUtils.isNotBlank(jsonObject.getString("rcLocCompCode"))) { + convert.setRcLocCompCode(jsonObject.getString("rcLocCompCode")); + } + if (StringUtils.isNotBlank(jsonObject.getString("operState"))) { + convert.setOperState(jsonObject.getString("operState")); + } + JSONArray itemList = jsonObject.getJSONArray("itemList"); + List<SalesReturn> salesReturnList = new ArrayList<>(); + for(int i=0;i<itemList.length();i++){ + SalesReturn salesReturn = new SalesReturn(); + JSONObject itemObject = itemList.getJSONObject(i); + // 璁剧疆鍚勪釜瀛楁 + if (StringUtils.isNotBlank(itemObject.getString("itemId"))) { + salesReturn.setItemId(itemObject.getString("itemId")); + } + if (StringUtils.isNotBlank(itemObject.getString("batchNum"))) { + salesReturn.setBatchNum(itemObject.getString("batchNum")); + } + if (StringUtils.isNotBlank(itemObject.getString("materialName"))) { + salesReturn.setMaterialName(itemObject.getString("materialName")); + } + if (StringUtils.isNotBlank(itemObject.getString("specsName"))) { + salesReturn.setSpecsName(itemObject.getString("specsName")); + } + if (StringUtils.isNotBlank(itemObject.getString("jzfmName"))) { + salesReturn.setJzfmName(itemObject.getString("jzfmName")); + } + if (StringUtils.isNotBlank(itemObject.getString("materialSize"))) { + salesReturn.setMaterialSize(itemObject.getString("materialSize")); + } + if (StringUtils.isNotBlank(itemObject.getString("outerPackingSize"))) { + salesReturn.setOuterPackingSize(itemObject.getString("outerPackingSize")); + } + if (itemObject.has("grossWeight")) { + salesReturn.setGrossWeight(itemObject.getDouble("grossWeight")); + } + if (itemObject.has("netWeight")) { + salesReturn.setNetWeight(itemObject.getDouble("netWeight")); + } + if (StringUtils.isNotBlank(itemObject.getString("backTypeName"))) { + salesReturn.setBackTypeName(itemObject.getString("backTypeName")); + } + if (StringUtils.isNotBlank(itemObject.getString("backReason"))) { + salesReturn.setBackReason(itemObject.getString("backReason")); + } + if (StringUtils.isNotBlank(itemObject.getString("alloyStateName"))) { + salesReturn.setAlloyStateName(itemObject.getString("alloyStateName")); + } + if (StringUtils.isNotBlank(itemObject.getString("itemRemark"))) { + salesReturn.setItemRemark(itemObject.getString("itemRemark")); + } + if (StringUtils.isNotBlank(itemObject.getString("operState"))) { + salesReturn.setOperState(itemObject.getString("operState")); + } + // 娣诲姞鍒板垪琛ㄤ腑 + salesReturnList.add(salesReturn); + } + convert.setItemList(salesReturnList); + return convert; + } + +} diff --git a/JavaSource/com/mandi/fendan/mapper/SaleBackOrderMapper.java b/JavaSource/com/mandi/fendan/mapper/SaleBackOrderMapper.java new file mode 100644 index 0000000..aeec9df --- /dev/null +++ b/JavaSource/com/mandi/fendan/mapper/SaleBackOrderMapper.java @@ -0,0 +1,22 @@ +package com.mandi.fendan.mapper; + +import com.mandi.fendan.persist.SaleBackOrder; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +public interface SaleBackOrderMapper { + + //鏂板 + void saveEntity(SaleBackOrder saleBackOrder); + + //鏍规嵁Id鏌ヨ + @Select("select a.* from SaleBackOrder a where a.NewSalesId=#{newSalesId}") + SaleBackOrder queryById(@Param("newSalesId") String newSalesId); + + //淇敼 + void updateEntity(SaleBackOrder saleBackOrder); + + @Delete("delete from SaleBackOrder where NewSalesId=#{newSalesId} ") + void deleteByNewSalesId(@Param("newSalesId") String newSalesId); +} diff --git a/JavaSource/com/mandi/fendan/mapper/SaleReturnMapper.java b/JavaSource/com/mandi/fendan/mapper/SaleReturnMapper.java new file mode 100644 index 0000000..a8cfe7d --- /dev/null +++ b/JavaSource/com/mandi/fendan/mapper/SaleReturnMapper.java @@ -0,0 +1,21 @@ +package com.mandi.fendan.mapper; + +import com.mandi.fendan.persist.SalesReturn; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + + +public interface SaleReturnMapper { + + void saveEntity(SalesReturn salesReturn); + //鏍规嵁Id鏌ヨ + @Select("select a.* from SalesReturn a where a.itemId=#{itemId}") + SalesReturn queryById(@Param("itemId") String itemId); + + void updateEntity(SalesReturn convert); + + //鏍规嵁Id鍒犻櫎 + @Delete("delete from SalesReturn where itemId=#{itemId} ") + void deleteByItemId(@Param("itemId") String itemId); +} diff --git a/JavaSource/com/mandi/fendan/mapper/xmls/SaleBackOrderMapper.xml b/JavaSource/com/mandi/fendan/mapper/xmls/SaleBackOrderMapper.xml new file mode 100644 index 0000000..3c3a730 --- /dev/null +++ b/JavaSource/com/mandi/fendan/mapper/xmls/SaleBackOrderMapper.xml @@ -0,0 +1,27 @@ +<?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"> +<mapper namespace="com.mandi.fendan.mapper.SaleBackOrderMapper"> + + <insert id="saveEntity"> + INSERT INTO SaleBackOrder (newSalesId, docNum, docTime, newAccountNo, createdBy, + ncDepCode, userCode, invoiceNum, docRemark, rcDepCode, rcLocCompCode, operState) + VALUES (#{newSalesId}, #{docNum}, #{docTime}, #{newAccountNo}, #{createdBy}, + #{ncDepCode}, #{userCode}, #{invoiceNum}, #{docRemark}, #{rcDepCode}, #{rcLocCompCode}, #{operState}) + </insert> + <update id="updateEntity"> + UPDATE SaleBackOrder + SET DocNum = #{docNum}, + DocTime = #{docTime}, + NewAccountNo = #{newAccountNo}, + CreatedBy = #{createdBy}, + NcDepCode = #{ncDepCode}, + UserCode = #{userCode}, + InvoiceNum = #{invoiceNum}, + DocRemark = #{docRemark}, + RcDepCode = #{rcDepCode}, + RcLocCompCode = #{rcLocCompCode}, + OperState = #{operState} + WHERE NewSalesId = #{newSalesId} + </update> + +</mapper> diff --git a/JavaSource/com/mandi/fendan/mapper/xmls/SaleReturnMapper.xml b/JavaSource/com/mandi/fendan/mapper/xmls/SaleReturnMapper.xml new file mode 100644 index 0000000..713d3ff --- /dev/null +++ b/JavaSource/com/mandi/fendan/mapper/xmls/SaleReturnMapper.xml @@ -0,0 +1,32 @@ +<?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"> +<mapper namespace="com.mandi.fendan.mapper.SaleReturnMapper"> + + <insert id="saveEntity"> + INSERT INTO SalesReturn (itemId, batchNum, materialName, specsName, jzfmName, + materialSize, outerPackingSize, grossWeight, netWeight, backTypeName, + backReason, alloyStateName, itemRemark, operState) + VALUES (#{itemId}, #{batchNum}, #{materialName}, #{specsName}, #{jzfmName}, + #{materialSize}, #{outerPackingSize}, #{grossWeight}, #{netWeight}, + #{backTypeName}, #{backReason}, #{alloyStateName}, #{itemRemark}, #{operState}) + </insert> + <update id="updateEntity"> + UPDATE SalesReturn + SET + batchNum = #{batchNum}, + materialName = #{materialName}, + specsName = #{specsName}, + jzfmName = #{jzfmName}, + materialSize = #{materialSize}, + outerPackingSize = #{outerPackingSize}, + grossWeight = #{grossWeight}, + netWeight = #{netWeight}, + backTypeName = #{backTypeName}, + backReason = #{backReason}, + alloyStateName = #{alloyStateName}, + itemRemark = #{itemRemark}, + operState = #{operState} + WHERE itemId = #{itemId} + </update> + +</mapper> diff --git a/JavaSource/com/mandi/fendan/persist/SaleBackOrder.java b/JavaSource/com/mandi/fendan/persist/SaleBackOrder.java new file mode 100644 index 0000000..0f9f9c4 --- /dev/null +++ b/JavaSource/com/mandi/fendan/persist/SaleBackOrder.java @@ -0,0 +1,131 @@ +package com.mandi.fendan.persist; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; +import java.io.Serializable; +import java.util.List; + +@Entity +@Table(name="fd_SeparateList") +public class SaleBackOrder implements Serializable { + + @Id + private String newSalesId;//涓婚敭 + private String docNum;//鍗曟嵁鍙� + private String docTime;//鍗曟嵁鏃ユ湡 + private String newAccountNo;//瀹㈡埛 + private String createdBy;//鍒涘缓浜� + private String ncDepCode;//閮ㄩ棬 + private String userCode;//涓氬姟鍛� + private String invoiceNum;//鍙戠エ鍙� + private String docRemark;//澶囨敞 + private String rcDepCode;//鏀惰揣鍗曚綅 + private String rcLocCompCode;//瀹㈡埛閫�璐ц鏀垮尯鍒� + private String operState;//澶勭悊鎿嶄綔 + private List<SalesReturn> itemList; + + public String getNewSalesId() { + return newSalesId; + } + + public void setNewSalesId(String newSalesId) { + this.newSalesId = newSalesId; + } + + public String getDocNum() { + return docNum; + } + + public void setDocNum(String docNum) { + this.docNum = docNum; + } + + public String getDocTime() { + return docTime; + } + + public void setDocTime(String docTime) { + this.docTime = docTime; + } + + public String getNewAccountNo() { + return newAccountNo; + } + + public void setNewAccountNo(String newAccountNo) { + this.newAccountNo = newAccountNo; + } + + public String getCreatedBy() { + return createdBy; + } + + public void setCreatedBy(String createdBy) { + this.createdBy = createdBy; + } + + public String getNcDepCode() { + return ncDepCode; + } + + public void setNcDepCode(String ncDepCode) { + this.ncDepCode = ncDepCode; + } + + public String getUserCode() { + return userCode; + } + + public void setUserCode(String userCode) { + this.userCode = userCode; + } + + public String getInvoiceNum() { + return invoiceNum; + } + + public void setInvoiceNum(String invoiceNum) { + this.invoiceNum = invoiceNum; + } + + public String getDocRemark() { + return docRemark; + } + + public void setDocRemark(String docRemark) { + this.docRemark = docRemark; + } + + public String getRcDepCode() { + return rcDepCode; + } + + public void setRcDepCode(String rcDepCode) { + this.rcDepCode = rcDepCode; + } + + public String getRcLocCompCode() { + return rcLocCompCode; + } + + public void setRcLocCompCode(String rcLocCompCode) { + this.rcLocCompCode = rcLocCompCode; + } + + public String getOperState() { + return operState; + } + + public void setOperState(String operState) { + this.operState = operState; + } + + public List<SalesReturn> getItemList() { + return itemList; + } + + public void setItemList(List<SalesReturn> itemList) { + this.itemList = itemList; + } +} diff --git a/JavaSource/com/mandi/fendan/persist/SalesReturn.java b/JavaSource/com/mandi/fendan/persist/SalesReturn.java new file mode 100644 index 0000000..11dfcb4 --- /dev/null +++ b/JavaSource/com/mandi/fendan/persist/SalesReturn.java @@ -0,0 +1,140 @@ +package com.mandi.fendan.persist; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; +import java.io.Serializable; + +@Entity +@Table(name="SalesReturn") +public class SalesReturn implements Serializable { + + @Id + private String itemId; // 鐗╂枡缂栧彿 + private String batchNum; // 鎵规鍙� + private String materialName; // 鐗╂枡鍚嶇О + private String specsName; // 瑙勬牸鍚嶇О + private String jzfmName; // 澶圭焊瑕嗚啘鍚嶇О + private String materialSize; // 灏哄 + private String outerPackingSize; // 澶栧寘瑁呭昂瀵� + private Double grossWeight; // 姣涢噸 + private Double netWeight; // 鍑�閲� + private String backTypeName; // 閫�璐х被鍨� + private String backReason; // 閫�璐у師鍥� + private String alloyStateName; // 鍚堥噾鐘舵�佸悕绉� + private String itemRemark; // 澶囨敞 + private String operState; // 澶勭悊鎿嶄綔 + + + public String getItemId() { + return itemId; + } + + public void setItemId(String itemId) { + this.itemId = itemId; + } + + public String getBatchNum() { + return batchNum; + } + + public void setBatchNum(String batchNum) { + this.batchNum = batchNum; + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + public String getSpecsName() { + return specsName; + } + + public void setSpecsName(String specsName) { + this.specsName = specsName; + } + + public String getJzfmName() { + return jzfmName; + } + + public void setJzfmName(String jzfmName) { + this.jzfmName = jzfmName; + } + + public String getMaterialSize() { + return materialSize; + } + + public void setMaterialSize(String materialSize) { + this.materialSize = materialSize; + } + + public String getOuterPackingSize() { + return outerPackingSize; + } + + public void setOuterPackingSize(String outerPackingSize) { + this.outerPackingSize = outerPackingSize; + } + + public Double getGrossWeight() { + return grossWeight; + } + + public void setGrossWeight(Double grossWeight) { + this.grossWeight = grossWeight; + } + + public Double getNetWeight() { + return netWeight; + } + + public void setNetWeight(Double netWeight) { + this.netWeight = netWeight; + } + + public String getBackTypeName() { + return backTypeName; + } + + public void setBackTypeName(String backTypeName) { + this.backTypeName = backTypeName; + } + + public String getBackReason() { + return backReason; + } + + public void setBackReason(String backReason) { + this.backReason = backReason; + } + + public String getAlloyStateName() { + return alloyStateName; + } + + public void setAlloyStateName(String alloyStateName) { + this.alloyStateName = alloyStateName; + } + + public String getItemRemark() { + return itemRemark; + } + + public void setItemRemark(String itemRemark) { + this.itemRemark = itemRemark; + } + + public String getOperState() { + return operState; + } + + public void setOperState(String operState) { + this.operState = operState; + } +} diff --git a/JavaSource/com/mandi/fendan/service/SaleBackOrderService.java b/JavaSource/com/mandi/fendan/service/SaleBackOrderService.java new file mode 100644 index 0000000..eda8947 --- /dev/null +++ b/JavaSource/com/mandi/fendan/service/SaleBackOrderService.java @@ -0,0 +1,8 @@ +package com.mandi.fendan.service; + +import com.mandi.fendan.persist.SaleBackOrder; + +public interface SaleBackOrderService { + void saveOrUpdateOrDelete(SaleBackOrder saleBackOrder); + +} diff --git a/JavaSource/com/mandi/fendan/service/SaleReturnService.java b/JavaSource/com/mandi/fendan/service/SaleReturnService.java new file mode 100644 index 0000000..6a04021 --- /dev/null +++ b/JavaSource/com/mandi/fendan/service/SaleReturnService.java @@ -0,0 +1,13 @@ +package com.mandi.fendan.service; + +import com.mandi.fendan.persist.SalesReturn; + +public interface SaleReturnService{ + void saveEntity(SalesReturn salesReturn); + + SalesReturn queryById(String itemId); + + void updateEntity(SalesReturn convert); + + void deleteByItemId(String itemId); +} diff --git a/JavaSource/com/mandi/fendan/service/impl/SaleBackOrderServiceImpl.java b/JavaSource/com/mandi/fendan/service/impl/SaleBackOrderServiceImpl.java new file mode 100644 index 0000000..448a222 --- /dev/null +++ b/JavaSource/com/mandi/fendan/service/impl/SaleBackOrderServiceImpl.java @@ -0,0 +1,189 @@ +package com.mandi.fendan.service.impl; + + +import com.mandi.fendan.mapper.SaleBackOrderMapper; +import com.mandi.fendan.persist.SaleBackOrder; +import com.mandi.fendan.persist.SalesReturn; +import com.mandi.fendan.service.SaleBackOrderService; +import com.mandi.fendan.service.SaleReturnService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class SaleBackOrderServiceImpl implements SaleBackOrderService { + @Resource + private SaleBackOrderMapper saleBackOrderMapper; + @Resource + private SaleReturnService saleReturnService; + + public void saveOrUpdateOrDelete(SaleBackOrder saleBackOrder) { + //鏇存柊鎴栨柊澧炲疄浣� + if(StringUtils.isNotBlank(saleBackOrder.getNewSalesId())){ + SaleBackOrder saleBackOrder1 = saleBackOrderMapper.queryById(saleBackOrder.getNewSalesId()); + //鏈変富閿暟鎹� 鏇存柊 + if(saleBackOrder1!=null){ + //鏈変富閿暟鎹� 骞跺鐞嗙姸鎬佷负鍒犻櫎鍒欏垹闄� + if("1".equals(saleBackOrder.getOperState())) { + saleBackOrderMapper.deleteByNewSalesId(saleBackOrder.getNewSalesId()); + }else{ + SaleBackOrder convert = convert(saleBackOrder, saleBackOrder1); + saleBackOrderMapper.updateEntity(convert); + } + }else { + //鏃犱富閿暟鎹� 鏂板 + saleBackOrderMapper.saveEntity(saleBackOrder); + } + } + //鏇存柊鎴栨柊澧炲瓙瀹炰綋 + if(!saleBackOrder.getItemList().isEmpty() || saleBackOrder.getItemList().size()!=0){ + List<SalesReturn> salesReturnList = saleBackOrder.getItemList(); + for(SalesReturn salesReturn:salesReturnList){ + if(StringUtils.isNotBlank(salesReturn.getItemId())) { + SalesReturn salesReturn1=saleReturnService.queryById(salesReturn.getItemId()); + //鏈変富閿暟鎹� 鏇存柊 + if(salesReturn1!=null){ + //鏈変富閿暟鎹� 骞跺鐞嗙姸鎬佷负鍒犻櫎鍒欏垹闄� + if("1".equals(salesReturn.getOperState())) { + saleReturnService.deleteByItemId(salesReturn.getItemId()); + }else { + SalesReturn convert = convertSalesReturn(salesReturn, salesReturn1); + saleReturnService.updateEntity(convert); + } + }else{ + //鏃犱富閿暟鎹� 鏂板 + saleReturnService.saveEntity(salesReturn); + } + } + } + } + } + + + private SalesReturn convertSalesReturn(SalesReturn salesReturn,SalesReturn salesReturn1){ + if (StringUtils.isNotBlank(salesReturn.getItemId()) && + !salesReturn.getItemId().equals(salesReturn1.getItemId())) { + salesReturn1.setItemId(salesReturn.getItemId()); + } + + if (StringUtils.isNotBlank(salesReturn.getBatchNum()) && + !salesReturn.getBatchNum().equals(salesReturn1.getBatchNum())) { + salesReturn1.setBatchNum(salesReturn.getBatchNum()); + } + + if (StringUtils.isNotBlank(salesReturn.getMaterialName()) && + !salesReturn.getMaterialName().equals(salesReturn1.getMaterialName())) { + salesReturn1.setMaterialName(salesReturn.getMaterialName()); + } + + if (StringUtils.isNotBlank(salesReturn.getSpecsName()) && + !salesReturn.getSpecsName().equals(salesReturn1.getSpecsName())) { + salesReturn1.setSpecsName(salesReturn.getSpecsName()); + } + + if (StringUtils.isNotBlank(salesReturn.getJzfmName()) && + !salesReturn.getJzfmName().equals(salesReturn1.getJzfmName())) { + salesReturn1.setJzfmName(salesReturn.getJzfmName()); + } + + if (StringUtils.isNotBlank(salesReturn.getMaterialSize()) && + !salesReturn.getMaterialSize().equals(salesReturn1.getMaterialSize())) { + salesReturn1.setMaterialSize(salesReturn.getMaterialSize()); + } + + if (StringUtils.isNotBlank(salesReturn.getOuterPackingSize()) && + !salesReturn.getOuterPackingSize().equals(salesReturn1.getOuterPackingSize())) { + salesReturn1.setOuterPackingSize(salesReturn.getOuterPackingSize()); + } + + if (salesReturn.getGrossWeight() != null && + !salesReturn.getGrossWeight().equals(salesReturn1.getGrossWeight())) { + salesReturn1.setGrossWeight(salesReturn.getGrossWeight()); + } + + if (salesReturn.getNetWeight() != null && + !salesReturn.getNetWeight().equals(salesReturn1.getNetWeight())) { + salesReturn1.setNetWeight(salesReturn.getNetWeight()); + } + + if (StringUtils.isNotBlank(salesReturn.getBackTypeName()) && + !salesReturn.getBackTypeName().equals(salesReturn1.getBackTypeName())) { + salesReturn1.setBackTypeName(salesReturn.getBackTypeName()); + } + + if (StringUtils.isNotBlank(salesReturn.getBackReason()) && + !salesReturn.getBackReason().equals(salesReturn1.getBackReason())) { + salesReturn1.setBackReason(salesReturn.getBackReason()); + } + + if (StringUtils.isNotBlank(salesReturn.getAlloyStateName()) && + !salesReturn.getAlloyStateName().equals(salesReturn1.getAlloyStateName())) { + salesReturn1.setAlloyStateName(salesReturn.getAlloyStateName()); + } + + if (StringUtils.isNotBlank(salesReturn.getItemRemark()) && + !salesReturn.getItemRemark().equals(salesReturn1.getItemRemark())) { + salesReturn1.setItemRemark(salesReturn.getItemRemark()); + } + + if (StringUtils.isNotBlank(salesReturn.getOperState()) && + !salesReturn.getOperState().equals(salesReturn1.getOperState())) { + salesReturn1.setOperState(salesReturn.getOperState()); + } + + return salesReturn1; + } + private SaleBackOrder convert(SaleBackOrder saleBackOrder,SaleBackOrder saleBackOrder1){ + if (StringUtils.isNotBlank(saleBackOrder.getNewSalesId()) && + !saleBackOrder.getNewSalesId().equals(saleBackOrder1.getNewSalesId())) { + saleBackOrder1.setNewSalesId(saleBackOrder.getNewSalesId()); + } + if (StringUtils.isNotBlank(saleBackOrder.getDocNum()) && + !saleBackOrder.getDocNum().equals(saleBackOrder1.getDocNum())) { + saleBackOrder1.setDocNum(saleBackOrder.getDocNum()); + } + if (StringUtils.isNotBlank(saleBackOrder.getDocTime()) && + !saleBackOrder.getDocTime().equals(saleBackOrder1.getDocTime())) { + saleBackOrder1.setDocTime(saleBackOrder.getDocTime()); + } + if (StringUtils.isNotBlank(saleBackOrder.getNewAccountNo()) && + !saleBackOrder.getNewAccountNo().equals(saleBackOrder1.getNewAccountNo())) { + saleBackOrder1.setNewAccountNo(saleBackOrder.getNewAccountNo()); + } + if (StringUtils.isNotBlank(saleBackOrder.getCreatedBy()) && + !saleBackOrder.getCreatedBy().equals(saleBackOrder1.getCreatedBy())) { + saleBackOrder1.setCreatedBy(saleBackOrder.getCreatedBy()); + } + if (StringUtils.isNotBlank(saleBackOrder.getNcDepCode()) && + !saleBackOrder.getNcDepCode().equals(saleBackOrder1.getNcDepCode())) { + saleBackOrder1.setNcDepCode(saleBackOrder.getNcDepCode()); + } + if (StringUtils.isNotBlank(saleBackOrder.getUserCode()) && + !saleBackOrder.getUserCode().equals(saleBackOrder1.getUserCode())) { + saleBackOrder1.setUserCode(saleBackOrder.getUserCode()); + } + if (StringUtils.isNotBlank(saleBackOrder.getInvoiceNum()) && + !saleBackOrder.getInvoiceNum().equals(saleBackOrder1.getInvoiceNum())) { + saleBackOrder1.setInvoiceNum(saleBackOrder.getInvoiceNum()); + } + if (StringUtils.isNotBlank(saleBackOrder.getDocRemark()) && + !saleBackOrder.getDocRemark().equals(saleBackOrder1.getDocRemark())) { + saleBackOrder1.setDocRemark(saleBackOrder.getDocRemark()); + } + if (StringUtils.isNotBlank(saleBackOrder.getRcDepCode()) && + !saleBackOrder.getRcDepCode().equals(saleBackOrder1.getRcDepCode())) { + saleBackOrder1.setRcDepCode(saleBackOrder.getRcDepCode()); + } + if (StringUtils.isNotBlank(saleBackOrder.getRcLocCompCode()) && + !saleBackOrder.getRcLocCompCode().equals(saleBackOrder1.getRcLocCompCode())) { + saleBackOrder1.setRcLocCompCode(saleBackOrder.getRcLocCompCode()); + } + if (StringUtils.isNotBlank(saleBackOrder.getOperState()) && + !saleBackOrder.getOperState().equals(saleBackOrder1.getOperState())) { + saleBackOrder1.setOperState(saleBackOrder.getOperState()); + } + return saleBackOrder1; + } +} diff --git a/JavaSource/com/mandi/fendan/service/impl/SaleReturnServiceImpl.java b/JavaSource/com/mandi/fendan/service/impl/SaleReturnServiceImpl.java new file mode 100644 index 0000000..20bde8a --- /dev/null +++ b/JavaSource/com/mandi/fendan/service/impl/SaleReturnServiceImpl.java @@ -0,0 +1,36 @@ +package com.mandi.fendan.service.impl; + + +import com.mandi.fendan.mapper.SaleBackOrderMapper; +import com.mandi.fendan.mapper.SaleReturnMapper; +import com.mandi.fendan.persist.SalesReturn; +import com.mandi.fendan.service.SaleReturnService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class SaleReturnServiceImpl implements SaleReturnService{ + @Resource + private SaleReturnMapper saleReturnMapper; + + @Override + public void saveEntity(SalesReturn salesReturn) { + saleReturnMapper.saveEntity(salesReturn); + } + + @Override + public SalesReturn queryById(String itemId) { + return saleReturnMapper.queryById(itemId); + } + + @Override + public void updateEntity(SalesReturn convert) { + saleReturnMapper.updateEntity(convert); + } + + @Override + public void deleteByItemId(String itemId) { + saleReturnMapper.deleteByItemId(itemId); + } +} -- Gitblit v1.9.3